점 집합의 닮음 판정

아직 제출이 없습니다시간 제한3초메모리 제한128 MB

문제

평면 위의 격자점(두 좌표가 모두 정수인 점)들로 이루어진 집합 하나가 주어지며, 이를 패턴이라고 부른다. 또한 평면 위의 다른 격자점 집합들의 모임도 함께 주어진다.

각 집합이 패턴과 닮음인지, 즉 회전(rotation)·평행이동(translation)·대칭이동(reflection)·크기 변환(dilation)을 적절히 조합하여 패턴과 완전히 똑같은 모양으로 만들 수 있는지 판정하려고 한다.

예를 들어 집합 {(0,0),(2,0),(2,1)}\{(0,0),(2,0),(2,1)\} 은 집합 {(6,1),(6,5),(4,5)}\{(6,1),(6,5),(4,5)\} 과 닮음이지만, 집합 {(4,0),(6,0),(5,1)}\{(4,0),(6,0),(5,-1)\} 과는 닮음이 아니다.

다음을 수행하는 프로그램을 작성하라.

  • 표준 입력에서 패턴과 조사 대상 집합들의 정보를 읽는다.
  • 각 집합이 패턴과 닮음인지 판정한다.
  • 결과를 표준 출력에 쓴다.

입력

첫째 줄에 패턴을 이루는 점의 개수 kk (1k250001 \le k \le 25\,000)가 주어진다. 이어지는 kk개의 줄에는 각 점의 좌표가 공백 하나로 구분된 두 정수로 주어진다. ii번째 점의 좌표는 xix_iyiy_i (20000xi,yi20000-20\,000 \le x_i, y_i \le 20\,000)이다. 패턴을 이루는 점들은 서로 모두 다르다.

그 다음 줄에는 조사할 집합의 개수 nn (1n201 \le n \le 20)이 주어진다. 이어서 nn개의 집합에 대한 정보가 주어진다. 각 집합의 정보는 그 집합에 속한 점의 개수 ll (1l250001 \le l \le 25\,000)이 적힌 줄로 시작한다. 그 뒤 ll개의 줄에 각 점의 좌표 xxyy (20000x,y20000-20\,000 \le x, y \le 20\,000)가 공백 하나로 구분된 두 정수로 한 줄에 하나씩 주어진다. 같은 집합에 속한 점들은 서로 모두 다르다.

출력

nn개의 줄을 출력한다. 각 줄은 조사한 집합 하나에 대응한다. ii번째 줄에는, ii번째 집합이 패턴과 닮음이면 TAK(폴란드어로 '예')를, 닮음이 아니면 NIE(폴란드어로 '아니오')를 출력한다.

힌트