만드는 중입니다

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

대칭축

시간 제한2초메모리 제한256 MB

요약
각 테스트 케이스에 주어진 평면 점 집합을 자기 자신에 겹치게 반사하는 대칭축이 있는지 판단합니다.
난이도

보통10점 중 7점

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

문제

평면 위의 점 pp와 직선 LL이 있을 때, LL에 대한 pp의 반사점 p′p'은 선분 pp′pp'이 LL과 수직이고 그 중점이 LL 위에 있는 점이다. pp가 LL 위에 있으면 p′=pp' = p이다.

평면 위의 점 집합에서 대칭축은 집합의 모든 점을 그 직선에 대해 반사한 점이 다시 집합에 속하는 직선이다. 점 집합이 주어지면 대칭축이 하나라도 있는지 판정하라.

입력

첫 줄에 테스트 케이스의 개수 KK (1≤K≤101 \le K \le 10)가 주어진다.

각 테스트 케이스의 첫 줄에는 점의 개수 NN (1≤N≤1000001 \le N \le 100000)이 주어진다. 이어지는 NN개의 줄에는 점의 좌표 XX와 YY가 공백 하나로 구분되어 주어진다 (−10000≤X,Y≤10000-10000 \le X, Y \le 10000). 좌표는 소수점 아래 최대 66자리까지 주어진다. 한 테스트 케이스 안에서 같은 위치의 점이 두 번 주어지지 않는다. 모든 테스트 케이스의 NN을 더한 값은 200000200000 이하이다.

좌표가 실수이므로 입력은 다음을 만족한다. 대칭축이 있으면 각 점의 반사점은 집합의 어떤 점과 정확히 일치한다. 대칭축이 없으면 어떤 직선 LL을 잡아도 LL에 대한 반사점이 집합의 모든 점에서 10−610^{-6}보다 멀리 떨어지는 점이 하나 이상 있다.

출력

각 테스트 케이스마다 대칭축이 하나라도 있으면 YES를, 없으면 NO를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    4
    -10 0
    10 0
    10 10
    10 -10
    4
    -10 0
    10 1
    10 10.5
    10 -10.5
    6
    -1000 30
    -100 20
    -10 10
    1000 30
    100 20
    10 10
    
    예상 출력
    YES
    NO
    YES
    
  2. 예제 2

    입력
    3
    1
    0 0
    2
    3.5 -2.25
    -1 7
    2
    0.000001 0
    -0.000001 0
    
    예상 출력
    YES
    YES
    YES
    
  3. 예제 3

    입력
    4
    3
    0 0
    1 0
    5 0
    5
    0 0
    1 0
    3 0
    6 0
    10 0
    3
    0 0
    1 0
    0 1
    3
    0 0
    1 0
    0 2
    
    예상 출력
    YES
    YES
    YES
    NO