새 트랙

정해진 공식에 따라 x, y 좌표를 정하고, 교차점 수 k를 만족하도록 y좌표 순열을 구성해 축에 평행한 폴리라인을 출력하는 문제다.

어려움9구현조합론기하수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

게르 킬케는 포뮬러-Y 경주에 쓸 트랙을 설계하고, 이번에 새 트랙을 만들려고 한다. 트랙을 놓을 평면에 직교좌표계를 잡는데, x축은 오른쪽, y축은 위쪽을 향한다. 트랙은 다음 조건을 모두 만족해야 한다.

  • 트랙은 좌표축과 평행한 선분 nn개로 이루어진 꺾은선이다.
  • 꺾은선의 한쪽 끝은 출발점, 반대쪽 끝은 도착점이고, 두 점은 서로 다르다.
  • 모든 선분 끝점의 두 좌표는 30003000 이하의 양의 정수다.
  • 모든 선분의 길이는 0이 아니다.
  • 출발점에서 도착점으로 따라갈 때, 한 선분이 끝나고 다음 선분이 시작하는 지점마다 시계 방향으로 90도 꺾는다.
  • 어떤 선분의 끝점도 다른 선분 위에 놓이지 않는다. 다만 이웃한 두 선분은 끝점 하나를 공유한다. 특히 서로 다른 두 선분이 길이가 0이 아닌 부분을 공유하는 일은 없다.

교차점은 이웃하지 않은 두 선분에 동시에 속하는 점이다. 게르는 선분이 nn개이고 교차점이 정확히 kk개인 트랙을 원한다. 이런 트랙은 0kn2(n21)/20 \le k \le n_2(n_2 - 1)/2일 때만 존재하고(n2=n/2n_2 = \lfloor n/2 \rfloor), 게르는 언제나 이 범위에서 kk를 고른다.

조건을 만족하는 트랙은 여러 개이므로, 출력 부분의 규칙으로 답을 하나로 정한다. 그 트랙을 구하라.

입력

첫째 줄에 테스트 케이스의 개수 tt가 주어진다 (1t1041 \le t \le 10^4). 다음 tt개 줄에는 각각 두 정수 nnkk가 주어진다 (1n10001 \le n \le 1000, 0kn2(n21)/20 \le k \le n_2(n_2 - 1)/2, n2=n/2n_2 = \lfloor n/2 \rfloor). nn은 트랙을 이루는 선분의 개수, kk는 필요한 교차점의 개수다. 모든 테스트 케이스의 nn의 합은 10410^4을 넘지 않는다.

출력

각 테스트 케이스마다 트랙의 꼭짓점 n+1n + 1개를 출발점부터 도착점까지 한 줄에 하나씩 출력한다. 각 줄에는 꼭짓점의 x좌표와 y좌표를 공백으로 구분해 적는다. 테스트 케이스는 입력 순서대로 사이에 아무것도 넣지 않고 이어서 출력한다.

출력할 트랙은 아래 규칙으로 만든 트랙이다. H=n/2H = \lceil n/2 \rceil, V=n/2V = \lfloor n/2 \rfloor이라 하자.

x0,x1,,xHx_0, x_1, \dots, x_H은 짝수 ii에 대해 xi=1+i/2x_i = 1 + i/2, 홀수 ii에 대해 xi=3000(i1)/2x_i = 3000 - (i - 1)/2이다.

y0,y1,,yVy_0, y_1, \dots, y_Vkk에서 정해진다. mVm \le V이면서 m(m1)/2km(m - 1)/2 \le k인 가장 큰 정수를 mm이라 하고, r=km(m1)/2r = k - m(m - 1)/2이라 하자. 1qm1 \le q \le m이면 cq=q1c_q = q - 1, m+1Vm + 1 \le V이면 cm+1=rc_{m+1} = r, m+1<qVm + 1 < q \le V이면 cq=0c_q = 0이다. 이때 y0,y1,,yVy_0, y_1, \dots, y_V1,2,,V+11, 2, \dots, V + 1의 순열 중 11 이상 VV 이하인 모든 qq에 대해 아래 두 조건을 만족하는 순열이고, 그런 순열은 정확히 하나다.

  • qq가 홀수면 yq<yq1y_q < y_{q-1}, qq가 짝수면 yq>yq1y_q > y_{q-1}이다.
  • y0,y1,,yq2y_0, y_1, \dots, y_{q-2} 중 정확히 cqc_q개가 yq1y_{q-1}yqy_q 사이에 양 끝을 빼고 놓인다.

트랙의 2j2j번 꼭짓점은 (xj,yj)(x_j, y_j), 2j+12j + 1번 꼭짓점은 (xj+1,yj)(x_{j+1}, y_j)이다. 00번 꼭짓점부터 nn번 꼭짓점까지 순서대로 출력한다.

이 트랙은 문제의 조건을 모두 만족하고, 교차점은 정확히 kk개다.