늪의 정체

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

요약
각 사진마다 최대 1000개의 점 중 한 직선 위에 놓인 점이 가장 많은 직선을 찾고, 그 최대 개수가 4 이상일 때만 그 직선 위의 점 개수를 출력한다.
난이도

보통10점 중 6점

유형
기하, 해시맵, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

사진 한 장은 검은 배경 위의 밝은 점들의 모임이며, 평면 위의 점들로 주어진다. 이 점들 중 일부는 기차 창문에서 나온 불빛인데, 기차는 완벽하게 곧은 선로를 따라 달리므로 그런 점들은 한 직선 위에 놓인다.

이 점들을 지우기 위해, 가장 많은 점을 지나는 직선을 찾는다. 그 직선 위에 점이 네 개 이상 있으면, 그 직선 위의 점을 모두 지운다(이 점들은 기차 창문으로 간주한다). 가장 많은 점을 지나는 직선이 둘 이상이면 그 중 아무거나 하나를 골라도 되며, 어느 것을 고르든 지워지는 점의 개수는 같다. 네 개 이상의 점을 지나는 직선이 하나도 없으면 기차가 없다고 보고 아무 점도 지우지 않는다.

각 사진에 대해 지워지는 점의 개수를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 사진 한 장을 나타낸다. 먼저 서로 다른 점의 개수인 양의 정수 nn (n≤1000n \le 1000)이 한 줄에 주어지고, 이어서 nn개의 줄에 각 점의 정수 좌표 xx yy가 한 줄에 하나씩 주어진다. 모든 좌표는 00 이상 1000010000 이하이다.

마지막 사진 다음에는 0 하나만 있는 줄이 오며, 이 줄은 처리하지 않는다.

출력

각 사진에 대해 Photo k: c points eliminated 형식으로 한 줄을 출력한다. 여기서 kk는 사진 번호(11부터 시작)이고 cc는 지워지는 점의 개수이다.

예제2

  1. 예제 1

    입력
    6
    0 1
    0 2
    1 2
    2 2
    4 5
    5 6
    4
    3 5
    4 4
    6 5
    7 4
    0
    
    예상 출력
    Photo 1: 4 points eliminated
    Photo 2: 0 points eliminated
    
  2. 예제 2

    입력
    6
    0 0
    1 0
    2 0
    3 0
    5 7
    8 2
    0
    
    예상 출력
    Photo 1: 4 points eliminated