조쌤포스

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

요약
움직이는 선생님과 N명의 움직이는 학생들이 주어질 때, 어떤 시점에서도 반지름 R 안에 들어오는 학생 수의 최댓값을 구하는 문제입니다.
난이도

보통10점 중 7점

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

문제

프로그래밍 시간에 학생들이 계속 떠들고 있다. 더는 참지 못한 조쌤은 학생들을 잡으려고 뛰기 시작했고, 동시에 떠들던 NN명의 학생도 도망가기 시작했다.

처음에 조쌤은 (BX,BY)(B_X, B_Y)에 있다. 조쌤은 초당 (BVX,BVY)(BV_X, BV_Y)만큼 이동하므로, tt초 뒤 위치는 (BX+BVX×t,BY+BVY×t)(B_X + BV_X \times t, B_Y + BV_Y \times t)이다.

학생 ii는 처음에 (Xi,Yi)(X_i, Y_i)에 있고 초당 (VXi,VYi)(VX_i, VY_i)만큼 이동한다. 따라서 tt (t≥0t \ge 0)초 뒤 위치는 (Xi+VXi×t,Yi+VYi×t)(X_i + VX_i \times t, Y_i + VY_i \times t)이다.

어떤 한 순간에 조쌤은 자신의 위치에서 반지름 RR인 원 안에 있는 학생들을 모두 잡을 수 있다. 한 번 기회를 쓰면 나머지 학생들은 모두 도망가므로, 조쌤은 시간을 하나 골라 그 순간에 잡을 수 있는 학생 수를 최대화하려고 한다.

학생들과 조쌤의 초기 위치와 이동 방향이 주어질 때, 조쌤이 한 번에 잡을 수 있는 학생 수의 최댓값을 구하라. 최적의 시간은 정수가 아닐 수도 있다.

입력

첫 줄에 학생 수 NN, 잡을 수 있는 반경 RR, 조쌤의 초기 위치 BXB_X, BYB_Y, 조쌤의 이동 벡터 BVXBV_X, BVYBV_Y가 공백으로 구분되어 주어진다.

다음 NN개 줄에는 학생 정보가 한 줄에 하나씩 주어진다. 각 줄에는 학생의 초기 위치 XiX_i, YiY_i와 이동 벡터 VXiVX_i, VYiVY_i가 공백으로 구분되어 주어진다.

출력

첫 줄에 조쌤이 한 번에 잡을 수 있는 학생 수의 최댓값을 출력한다.

실수 오차 보정을 위해 학생과 조쌤 사이의 거리가 R±0.0001R \pm 0.0001인 경우에도 잡을 수 있다고 판정한다.

제한

  • 1≤N≤50,0001 \le N \le 50,000
  • 1≤R≤2,5001 \le R \le 2,500
  • −1,000≤BX,BY≤1,000-1,000 \le B_X, B_Y \le 1,000
  • −100≤BVX,BVY≤100-100 \le BV_X, BV_Y \le 100
  • −1,000≤Xi,Yi,VXi,VYi≤1,000-1,000 \le X_i, Y_i, VX_i, VY_i \le 1,000
  • 모든 입력값은 정수이다.

힌트

첫 번째 예시에서는 1.51.5초가 지난 뒤 조쌤의 위치가 (0,3)(0, 3)이다. 이때 학생들의 위치는 각각 (0,3)(0, 3), (−0.5,3.5)(-0.5, 3.5), (4,−3.5)(4, -3.5)이므로 반경 11 안에 있는 1번과 2번 학생을 잡을 수 있다. 이보다 많이 잡을 수 있는 시간은 없다.

예제1

  1. 예제 1

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