아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

지진으로 깨진 스테인드글라스 창문 복원

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

요약
흩어진 다각형 조각 각각이 원래 창에서 어느 위치에 놓였는지 회전을 고려해 찾아낸다.
난이도

보통10점 중 6점

유형
기하, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

큰 지진으로 어느 대학 예배당의 아름다운 스테인드글라스 창문이 산산조각 나, 색유리 조각들이 바닥에 흩어졌습니다. 창문은 오직 납 이음새(lead joint)를 따라서만 깨졌기 때문에, 각 색유리 조각은 온전한 형태를 그대로 유지하고 있습니다. 바닥에 떨어진 각 조각은 원래 방향 그대로이거나, 90도(π/2\pi/2 라디안)의 배수만큼 회전한 상태입니다. 뒤집힌(거울처럼 반사된) 조각은 하나도 없습니다.

다행히 지진이 나기 전 원래 창문의 설계도(스키매틱)를 찾았습니다. 이 설계도로부터, 창문의 어떤 두 색유리 조각도 모양과 크기가 서로 같지 않다는 것을 알 수 있습니다. 이 설계도를 이용하여, 흩어진 각 조각이 원래 창문의 어느 위치에 해당하는지 찾아내는 프로그램을 작성하세요.

입력

입력은 복원해야 할 여러 개의 창문으로 이루어지며, 창문들이 차례로 주어집니다.

각 창문은 그 창문에 들어 있는 유리 조각의 개수를 나타내는 정수 nn (1≤n≤201 \le n \le 20)이 적힌 줄로 시작합니다. 이어지는 nn개의 줄에는 각각 서로 다른 색유리 조각 하나가, 넓이가 0이 아닌 단순 다각형으로 주어집니다. 꼭짓점이 kk개(3≤k≤1003 \le k \le 100)인 다각형은 반시계 방향 순서로 나열한 꼭짓점들로 표현하며, 맨 처음 꼭짓점을 맨 끝에 한 번 더 적어 다각형을 닫습니다:

x1 y1 x2 y2 … xk yk x1 y1x_1\ y_1\ x_2\ y_2\ \dots\ x_k\ y_k\ x_1\ y_1

한 다각형 안의 모든 꼭짓점은 서로 다르며(i≠ji \ne j이면 (xi,yi)≠(xj,yj)(x_i, y_i) \ne (x_j, y_j)), 연속한 세 꼭짓점이 한 직선 위에 있지 않습니다. 모든 좌표는 0≤xi,yi≤1000 \le x_i, y_i \le 100인 정수입니다.

nn개의 조각 설명 다음에는 한 줄이 더 있는데, 이는 원래 창문의 설계도로, 위와 같은 형식의 서로 겹치지 않는 다각형 nn개를 이어 붙여 적은 것입니다. 설계도의 각 다각형은, 위에 주어진 유리 조각들 중 정확히 하나를 90도의 배수만큼 회전한 뒤 평행이동한 것입니다.

창문들 사이는 빈 줄로 구분될 수 있습니다. 정수 00 하나만 있는 줄이 입력의 끝을 나타냅니다.

출력

각 창문마다 한 줄을 출력합니다. 입력에 나열된 ii번째 유리 조각(주어진 순서대로)에 대해, 그 조각이 설계도에서 나타나는 위치를 출력합니다. 위치는 설계도에 다각형이 등장하는 순서대로 11번부터 매깁니다. nn개의 수는 공백 하나로 구분합니다.

어떤 두 조각도 모양과 크기가 같지 않으므로, 각 조각은 설계도의 다각형 중 정확히 하나에 대응하며, 따라서 이 대응은 유일하게 결정됩니다.

예제3

  1. 예제 1

    입력
    2
    1 3 4 3 1 5 1 3
    4 4 4 7 2 7 4 4
    0 0 2 0 2 3 0 0 2 0 4 0 2 3 2 0
    
    4
    0 0 4 0 4 2 2 2 0 0
    0 0 4 0 2 2 0 2 0 0
    4 4 0 4 2 3 4 4
    0 4 4 4 2 6 0 4
    0 0 4 0 2 2 0 0 0 0 2 2 2 4 0 4 0 0 2 2 4 0 4 4 2 4 2 2 0 4 4 4 2 5 0 4
    
    0
    
    예상 출력
    1 2
    3 2 4 1
    
  2. 예제 2

    입력
    1
    0 0 3 0 0 4 0 0
    0 60 3 60 0 64 0 60
    
    0
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3
    0 0 4 0 2 2 0 0
    18 0 21 0 21 3 18 3 18 0
    36 0 41 0 36 1 36 0
    0 60 4 60 2 62 0 60 21 60 21 63 18 63 18 60 21 60 41 61 36 61 41 60 41 61
    
    0
    
    예상 출력
    1 2 3