점 집합의 닮음 판정
시간 제한3초메모리 제한128 MB
패턴 점 집합과 최대 20개의 질의 집합이 주어질 때, 각 집합이 회전, 평행이동, 반사, 확대를 거쳐 패턴과 같아질 수 있는지 판정한다.
문제
평면 위의 격자점(두 좌표가 모두 정수인 점)들로 이루어진 집합 하나가 주어지며, 이를 패턴이라고 부른다. 또한 평면 위의 다른 격자점 집합들의 모임도 함께 주어진다.
각 집합이 패턴과 닮음인지, 즉 회전(rotation)·평행이동(translation)·대칭이동(reflection)·크기 변환(dilation)을 적절히 조합하여 패턴과 완전히 똑같은 모양으로 만들 수 있는지 판정하려고 한다.
예를 들어 집합 은 집합 과 닮음이지만, 집합 과는 닮음이 아니다.
다음을 수행하는 프로그램을 작성하라.
- 표준 입력에서 패턴과 조사 대상 집합들의 정보를 읽는다.
- 각 집합이 패턴과 닮음인지 판정한다.
- 결과를 표준 출력에 쓴다.
입력
첫째 줄에 패턴을 이루는 점의 개수 ()가 주어진다. 이어지는 개의 줄에는 각 점의 좌표가 공백 하나로 구분된 두 정수로 주어진다. 번째 점의 좌표는 와 ()이다. 패턴을 이루는 점들은 서로 모두 다르다.
그 다음 줄에는 조사할 집합의 개수 ()이 주어진다. 이어서 개의 집합에 대한 정보가 주어진다. 각 집합의 정보는 그 집합에 속한 점의 개수 ()이 적힌 줄로 시작한다. 그 뒤 개의 줄에 각 점의 좌표 와 ()가 공백 하나로 구분된 두 정수로 한 줄에 하나씩 주어진다. 같은 집합에 속한 점들은 서로 모두 다르다.
출력
개의 줄을 출력한다. 각 줄은 조사한 집합 하나에 대응한다. 번째 줄에는, 번째 집합이 패턴과 닮음이면 TAK(폴란드어로 '예')를, 닮음이 아니면 NIE(폴란드어로 '아니오')를 출력한다.
힌트
