[Q] Quick Subtraction Trick

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

요약
유리수 x/y에 대해 a/b - c/d = (a-c)/(b-d) = x/y를 만족하는 0이 아닌 정수 a, b, c, d를 찾는다.
난이도

보통10점 중 7점

유형
수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

하볘는 Baekjoon Olympiad in Justification을 준비하고 있는 고등학생이다. 이를 위해 BOJ Archive에 있는 Project AtoZ의 Q번 문제를 풀려고 했으나, 문제가 생각보다 어려워서 풀지 못하고 있다.

Q번 문제는 다음과 같다.

00이 아닌 유리수 x/yx/y에 대해 다음 조건을 만족하는 00이 아닌 44개의 정수 aa, bb, cc, dd가 존재함을 증명하시오.

  • ab−cd=a−cb−d=xy\displaystyle \frac{a}{b} -\frac{c}{d} =\frac{a-c}{b-d} =\frac{x}{y}.

이를 지켜보던 BOJ Archive의 랭커인 당신은 하볘를 도와주기로 했다. 하볘를 위해 유리수 x/yx/y가 주어질 때 위 조건을 만족하는 aa, bb, cc, dd를 알려주는 프로그램을 만들어주자!

입력

첫째 줄에는 테스트케이스의 개수 TT가 주어진다. (1≤T≤200,000)(1\le T\le 200\\, 000)

각 테스트케이스에 대해, 첫째 줄에는 유리수 x/yx/y를 의미하는 두 정수 xx, yy가 공백으로 구분되어 주어진다. (1≤∣x∣,y≤1018)(1\le |x|,y\le 10^{18})

xx는 음수가 될 수 있지만 yy는 음수가 될 수 없다는 점과 x/yx/y가 기약분수가 아닐 수 있다는 점에 유의하라.

출력

각 테스트케이스에 대해, 문제의 조건을 만족하는 44개의 정수 aa, bb, cc, dd를 공백으로 구분하여 출력한다. (1≤∣a∣,b,∣c∣,d<263)(1\le |a|,b,|c|,d<2^{63})

aa와 cc는 음수가 될 수 있지만 bb와 dd는 음수가 될 수 없다는 점에 유의하라.

만약 가능한 답이 여러 가지라면 그중 아무거나 하나를 출력한다. 가능한 모든 입력에 대해 출력 조건을 만족하는 답이 있음을 보일 수 있다.

예제1

  1. 예제 1

    입력
    2
    1 2
    -85 2
    
    예상 출력
    7 6 16 24
    -408 12 17 2