소들의 브리지 대결

면접 대비

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

요약
어떤 중심에 대해 180도 회전 대칭을 이루는 네 점의 집합이 몇 개인지 센다. 각 점은 회전한 짝과 대응한다.
난이도

보통10점 중 5점

유형
해시맵, 기하, 조합론, 수학
정답자
아직 제출이 없습니다

문제

농부 존의 소 NN마리(4≤N≤10004 \le N \le 1000)가 큰 목초지에서 기다리고 있습니다. ii번 소는 정수 좌표 (Xi,Yi)(X_i, Y_i)(−109≤Xi,Yi≤109-10^9 \le X_i, Y_i \le 10^9)에 서 있습니다.

소들은 새로 좋아하게 된 카드 게임 브리지를 하기 위해 네 마리씩 팀을 이루려 합니다. 각 팀은 다음 조건을 반드시 만족해야 합니다. 네 마리의 소가 한 팀이 될 수 있으려면, 평면 위의 어떤 점 PP가 존재하여(단, PP는 네 소의 위치 중 어느 것과도 겹치지 않아야 합니다) 팀의 각 소를 점 PP를 중심으로 180∘180^\circ 회전시킨 위치가 같은 팀에 속한 다른 소의 위치와 정확히 일치해야 합니다.

다시 말해, 네 소의 위치가 어떤 중심 PP에 대해 점대칭을 이루면 됩니다. 브리지 팀을 이룰 수 있는 네 소의 조합이 몇 가지인지 구하세요.

예를 들어 여덟 마리의 소가 다음 여덟 점에 서 있다고 합시다.

                  |
                 f*
                  |             a = (-3, 1)    e = (-1, 1)
           b*     |             b = (-2, 2)    f = ( 0, 3)
        a      e  |             c = (-3, 0)    g = ( 2, 0)
         *     *  |             d = (-2, 0)    h = ( 3, 0)
         c  d     |     g  h
---------*--*-----+-----*--*---------
                  |

이때 브리지 팀을 이룰 수 있는 조합은 정확히 세 가지입니다. {a,b,e,d}\{a, b, e, d\}(점 (−2,1)(-2, 1)을 중심으로 회전), {b,c,e,f}\{b, c, e, f\}(점 (−1.5,1.5)(-1.5, 1.5)을 중심으로 회전), {c,d,g,h}\{c, d, g, h\}(점 (0,0)(0, 0)을 중심으로 회전).

주어지는 소들의 위치는 모두 서로 다르며, 특정한 순서 없이 주어집니다. 또한 정답은 부호 있는 32비트 정수 범위 안에 들어가는 것이 보장됩니다.

입력

  • 첫째 줄: 정수 NN.
  • 둘째 줄부터 N+1N+1째 줄까지: i+1i+1째 줄에 공백으로 구분된 두 정수 XiX_i와 YiY_i가 주어집니다.

출력

  • 첫째 줄: 브리지 팀을 이룰 수 있는 네 소의 조합의 개수를 나타내는 정수 하나.

예제3

  1. 예제 1

    입력
    8
    -3 0
    -2 0
    -1 1
    0 3
    2 0
    -3 1
    3 0
    -2 2
    
    예상 출력
    3
    
  2. 예제 2

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

    입력
    4
    0 0
    1 0
    0 1
    5 5
    
    예상 출력
    0