만드는 중입니다

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

가느다란 다각형

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

요약
각 (xbb, ybb)에 대해 2g ≤ p+q이면 xbb/g를 법으로 한 ybb/g의 모듈러 역원으로 만든 Q1을, 아니면 Q2의 네 꼭짓점을 출력한다.
난이도

보통10점 중 7점

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

문제

두 정수 xbbx_{bb}와 ybby_{bb}가 주어진다. 다음 조건을 모두 만족하는 다각형을 가느다란 다각형이라고 하자.

  • 꼭짓점이 3개 또는 4개다.
  • 이웃한 두 변은 공통 끝점만 공유하고, 이웃하지 않은 두 변은 어떤 점도 공유하지 않는다.
  • 모든 꼭짓점의 두 좌표는 정수다.
  • 모든 꼭짓점 (x,y)(x, y)가 0≤x≤xbb0 \le x \le x_{bb}와 0≤y≤ybb0 \le y \le y_{bb}를 만족한다.
  • xx좌표가 00인 꼭짓점, xx좌표가 xbbx_{bb}인 꼭짓점, yy좌표가 00인 꼭짓점, yy좌표가 ybby_{bb}인 꼭짓점이 각각 하나 이상 있다.
  • 넓이가 5000050000 이하다.

가느다란 다각형은 볼록하지 않아도 된다. 한 쌍 (xbb,ybb)(x_{bb}, y_{bb})에 대해 가느다란 다각형이 여러 개 존재하므로, 이 문제는 그중 하나를 다음과 같이 정해서 요구한다.

g=gcd⁡(xbb,ybb)g = \gcd(x_{bb}, y_{bb}), p=xbb/gp = x_{bb}/g, q=ybb/gq = y_{bb}/g라고 하자. 사각형 두 개를 정의한다.

  • Q1Q_1: 1≤r≤p1 \le r \le p이면서 rq≡1(modp)rq \equiv 1 \pmod{p}인 정수 rr는 유일하다. 이 rr와 s=(rq−1)/ps = (rq-1)/p를 써서, Q1Q_1의 꼭짓점을 순서대로 (0,0)(0, 0), (r,s)(r, s), (xbb,ybb)(x_{bb}, y_{bb}), (p−r,q−s)(p-r, q-s)로 정한다. Q1Q_1의 넓이는 gg다.
  • Q2Q_2: Q2Q_2의 꼭짓점을 순서대로 (0,0)(0, 0), (xbb,ybb−1)(x_{bb}, y_{bb}-1), (p,q)(p, q), (xbb−1,ybb)(x_{bb}-1, y_{bb})로 정한다. Q2Q_2의 넓이는 (p+q)/2(p+q)/2다.

Q1Q_1과 Q2Q_2는 둘 다 가느다란 다각형이다. 2g≤p+q2g \le p+q이면 Q1Q_1을, 그렇지 않으면 Q2Q_2를 출력한다. 즉 넓이가 더 작은 쪽을 출력하고, 두 넓이가 같으면 Q1Q_1을 출력한다.

입력

첫 줄에 테스트 케이스의 개수 nn이 주어진다 (1≤n≤1051 \le n \le 10^5). 다음 nn개의 줄에 테스트 케이스가 한 줄에 하나씩 주어진다. 각 줄은 두 정수 xbbx_{bb}와 ybby_{bb}로 이루어진다 (2≤xbb≤1092 \le x_{bb} \le 10^9, 2≤ybb≤1092 \le y_{bb} \le 10^9).

출력

각 테스트 케이스마다 다음 형식으로 출력한다.

4
x1 y1
x2 y2
x3 y3
x4 y4

첫 줄은 꼭짓점의 개수이고 항상 44다. 이어지는 네 줄에 문제에서 정한 순서대로 꼭짓점을 하나씩 출력하며, 두 좌표는 공백 하나로 구분한다.

예제2

  1. 예제 1

    입력
    2
    5 6
    1000000000 2
    
    예상 출력
    4
    0 0
    1 1
    5 6
    4 5
    4
    0 0
    1 0
    1000000000 2
    499999999 1
    
  2. 예제 2

    입력
    8
    2 2
    2 3
    3 2
    4 6
    6 4
    7 7
    2 9
    9 2
    
    예상 출력
    4
    0 0
    2 1
    1 1
    1 2
    4
    0 0
    1 1
    2 3
    1 2
    4
    0 0
    2 1
    3 2
    1 1
    4
    0 0
    1 1
    4 6
    1 2
    4
    0 0
    2 1
    6 4
    1 1
    4
    0 0
    7 6
    1 1
    6 7
    4
    0 0
    1 4
    2 9
    1 5
    4
    0 0
    5 1
    9 2
    4 1