만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

분수 XOR 최대화

시간 제한2초메모리 제한512 MB

요약
두 구간 [a, b]와 [c, d]에서 각각 실수를 골라 이진 전개를 XOR할 때 나올 수 있는 값의 상한을 구합니다.
난이도

어려움10점 중 8점

유형
비트 연산, 그리디, 수학
정답자
아직 제출이 없습니다

문제

실수 xx와 yy에 대한 비트 XOR 연산 ⊕\oplus를 다음과 같이 정의한다. x⊕y=lim⁡n→∞⌊2nx⌋⊕⌊2ny⌋2nx \oplus y = \lim_{n \to \infty}{\frac{\lfloor2^nx\rfloor \oplus \lfloor 2^ny\rfloor}{2^n}} 오른쪽 식의 ⊕\oplus는 정수 비트 XOR 연산이다. 예를 들어 58⊕38=34\frac{5}{8} \oplus \frac{3}{8} = \frac{3}{4}, 13⊕17=49\frac{1}{3} \oplus \frac{1}{7} = \frac{4}{9}, 15⊕17=665\frac{1}{5} \oplus \frac{1}{7} = \frac{6}{65}이다.

집합 X⊆RX \subseteq \mathbb{R}의 상한 sup⁡X\sup X는 XX의 모든 원소보다 크거나 같은 가장 작은 실수이다.

음이 아닌 유리수 aa, bb, cc, dd가 주어진다. sup⁡{x⊕y:x∈[a,b],y∈[c,d]}\sup\{x \oplus y : x \in [a, b], y \in [c, d]\}를 구하라. 즉 [a,b][a, b]의 원소와 [c,d][c, d]의 원소로 만든 모든 XOR 값보다 크거나 같은 가장 작은 값을 구하라.

입력

첫 줄에 테스트 케이스 수 TT(1≤T≤1001 \le T \le 100)가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 a=anumadenoma = \frac{a_{num}}{a_{denom}}과 b=bnumbdenomb = \frac{b_{num}}{b_{denom}}을 나타내는 정수 anuma_{num}, adenoma_{denom}, bnumb_{num}, bdenomb_{denom}(0≤anum,bnum≤10170 \le a_{num}, b_{num} \le 10^{17}, 1≤adenom,bdenom≤301 \le a_{denom}, b_{denom} \le 30)이 주어진다. 둘째 줄에는 같은 형식으로 cc와 dd가 주어진다. 모든 분수는 기약분수이며, a≤ba \le b와 c≤dc \le d가 보장된다.

출력

TT줄에 걸쳐 각 테스트 케이스의 답 x=xnumxdenomx = \frac{x_{num}}{x_{denom}}의 분자와 분모를 한 칸 띄워 출력한다. 답은 기약분수로 나타낸다.

힌트

첫 번째 테스트 케이스의 답은 22이다. 첫 번째 구간에서 11을, 두 번째 구간에서 1−2p1 - 2^p를 고르면 충분히 큰 정수 pp에 대해 XOR 값을 22에 한없이 가깝게 만들 수 있다. 그러나 22 이상의 값은 어떤 경우에도 만들 수 없다.

예제1

  1. 예제 1

    입력
    2
    0 1 1 1
    0 1 1 1
    5 7 5 7
    3 16 3 16
    
    예상 출력
    2 1
    59 112