직선 긋기 게임

면접 대비

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

요약
서로 다른 격자점 N개가 주어질 때, 두 점을 지나는 직선이 가질 수 있는 서로 다른 기울기의 개수를 센다.
난이도

쉬움10점 중 3점

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

문제

Farmer John이 Bessie에게 다음 게임을 제안했다. 판 위에는 서로 다른 격자점 NN개(2≤N≤2002 \le N \le 200)가 찍혀 있다. ii번째 점의 정수 좌표는 XiX_i, YiY_i이다(−1000≤Xi,Yi≤1000-1000 \le X_i, Y_i \le 1000).

Bessie는 찍혀 있는 점 중 두 개를 골라 그 두 점을 지나는 직선을 그으면 1점을 얻는다. 단, 이미 그은 직선과 평행한 직선은 그을 수 없다. 두 직선은 기울기가 같을 때 평행하며, 두 수직선도 서로 평행한 것으로 본다.

서로 평행한 직선이 하나도 없도록 Bessie가 그을 수 있는 직선의 최대 개수를 구하여라. 즉, 모든 점 쌍이 이루는 기울기의 서로 다른 값의 개수를 구하면 된다.

입력

  • 첫째 줄: 정수 NN.
  • 둘째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에는 ii번째 점의 좌표 XiX_i와 YiY_i가 공백으로 구분되어 주어진다.

출력

  • 서로 평행한 직선이 없도록 그을 수 있는 직선의 최대 개수를 정수 하나로 출력한다.

힌트

예제에서 Bessie는 기울기가 -1, 0, 1/3, 1인 네 종류의 직선을 그을 수 있다.

예제4

  1. 예제 1

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

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

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

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