L'ellipse avec le plus grand nombre de points dessus

시간 제한6초메모리 제한1024 MB

요약
N개의 점이 주어질 때, (x/a)^2 + (y/b)^2 = c^2 형태의 원점 중심 타원 하나 위에 놓인 점의 최대 개수를 구한다.
난이도

보통10점 중 7점

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

문제

00이 아닌 어떤 실수 aa, bb와 실수 cc에 대해 (xa)2+(yb)2=c2\left(\frac{x}{a}\right)^2+\left(\frac{y}{b}\right)^2=c^2를 만족시키는 점 (x,y)(x, y)의 집합을 원점타원이라고 한다. 주어진 NN개의 점들 중, 같은 원점타원 위에 있는 점들의 최대 개수를 구하시오.

입력

첫 번째 줄에 점의 개수 NN이 주어진다. (2≤N≤30002 \le N \le 3000)

다음 NN개 줄에 점의 위치 (x,y)(x, y)를 나타내는 정수 xx, yy가 공백으로 구분되어 한 줄에 하나씩 주어진다. 같은 위치에 여러 점이 있을 수 있다. (−109≤x,y≤109-10^9 \le x, y \le 10^9)

출력

같은 원점타원 위에 있는 점들의 최대 개수를 출력한다.

예제2

  1. 예제 1

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

    입력
    4
    1 1
    -1 1
    -1 -1
    1 -1
    
    예상 출력
    4