Deep800080

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

요약
직선 위에 점을 하나 골라 반지름 R인 원판이 주어진 N개의 점을 최대 몇 개까지 포함하는지 구하는 문제이다.
난이도

보통10점 중 7점

유형
기하, 정렬, 투 포인터, 구간
정답자
아직 제출이 없습니다

문제

Deep800080이라는 배의 선주인 Ian은 오늘 저녁 호수에서 바비큐를 하려고 한다. 호수로 뻗어 나가는 좁고 곧은 부두가 하나 있다. Ian은 부두 위 어딘가에서 바비큐를 하는 게 좋겠다고 생각한다.

그는 새로 산 특별한 바비큐 숯을 시험해 보고 싶다. 이 숯이 타면 물 위로 퍼지는 독특한 짙은 보라색 연기가 난다. 연기 구름은 바비큐 장소를 중심으로 완벽한 원 모양으로 퍼진다. 결국 구름은 최대 반지름에 도달하고, 그 뒤로는 밤늦게 사라질 때까지 그대로 유지된다.

호수에는 부두에서 각기 다른 거리에 여러 배가 정박해 있다. Ian은 그 배들의 선원들에게 바비큐를 알리고 싶다. 조금 게으른 그는 바비큐 연기가 대신 그 일을 해 주기를 바란다. Ian은 구름이 배에 닿으면 선원이 연기 냄새를 맡고 곧바로 근처에 바비큐가 있다는 것을 알게 되리라고 생각한다.

Ian은 최대한 많은 선원에게 알리고 싶으므로, 보라색 구름이 닿는 배의 수를 최대로 만드는 부두 위의 바비큐 그릴 위치를 고르려고 한다.

호수의 배는 단단히 정박해 있어 구름이 호수 위에 있는 동안 움직이지 않는다고 가정해도 된다. 또한 바비큐 장소를 한 번 정하면 그 위치는 행사 내내 고정된다.

입력

첫째 줄에 네 정수 N, R, A, B가 주어진다 (0 ≤ N ≤ 3 · 105; 1 ≤ R ≤ 106). N은 호수 위의 배의 수, R은 보라색 바비큐 구름의 최대 반지름이다. 부두는 좁고 길어서 좌표가 (0, 0)과 (A, B)인 서로 다른 두 점을 지나는 직선으로 볼 수 있다고 가정해도 된다.

다음 N개의 줄에는 호수 위의 배 하나의 좌표를 나타내는 두 정수 X와 Y가 주어진다. 두 배가 같은 좌표를 가지는 경우는 없다.

모든 좌표는 평면상의 일반적인 직교좌표이며, 절댓값은 106을 넘지 않는다.

출력

보라색 바비큐 구름이 닿을 수 있는 배의 최대 개수를 출력한다.

배의 위치가 구름이 이루는 원 안에 있으면, 경계를 포함해 닿은 것으로 간주한다. 연기 구름의 최대 반지름을 10−3만큼 늘려도 답이 바뀌지 않는다고 가정해도 된다.

힌트

그림 1: 예제 입력 1(왼쪽), 예제 입력 2(오른쪽 위), 예제 입력 3(오른쪽 아래)의 가능한 답

예제3

  1. 예제 1

    입력
    7 5 0 1
    -1 -1
    1 -1
    0 0
    2 3
    3 4
    10 10
    2 12
    
    예상 출력
    5
    
  2. 예제 2

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

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