아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

지하철 노선 계획

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

요약
평면 위의 점들과 반지름 d가 주어질 때, 원점에서 나가는 최소 개수의 반직선으로 모든 점을 덮되, 반직선 위의 어떤 점이 점에서 거리 d 이내이면 덮인 것으로 본다.
난이도

어려움10점 중 8점

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

문제

어떤 나라의 정부가 수도에 지하철망을 건설하려고 한다. 현실적인 이유로, 각 지하철 노선은 중앙역에서 출발하여 어떤 각도로 직선을 따라 필요한 만큼 뻗어 나가야 한다. 당신은 이 계획이 실현 가능한지 조사하도록 고용되었다.

도시의 중요 장소들의 좌표와, 이 장소들이 지하철역(이미 건설된 중앙역 포함)으로부터 떨어져 있어도 되는 최대 거리가 주어질 때, 필요한 지하철 노선의 최소 개수를 구하여라. 각 지하철 노선 위에는 지하철역을 원하는 만큼 세울 수 있다고 가정한다.

중앙역은 좌표 (0,0)(0, 0)에 위치한다. 각 노선은 원점에서 출발하는 반직선이며, 그 위의 임의의 점에 역을 세울 수 있다. 어떤 중요 장소가 '만족'되려면, 그 장소와 어떤 지하철역 사이의 거리가 dd 이하여야 한다.

그림 1: 위 그림은 예제 입력의 첫 번째 데이터 집합에 해당한다.

입력

입력의 첫째 줄에 데이터 집합의 개수 NN이 주어진다.

각 데이터 집합의 첫째 줄에는 두 정수 nn과 dd가 주어진다 (1≤n≤5001 \le n \le 500, 0≤d≤1500 \le d \le 150). nn은 지하철역이 가까이 있어야 하는 중요 장소의 개수이고, dd는 중요 장소와 지하철역 사이에 허용되는 최대 거리이다.

이어서 nn개의 줄에 걸쳐 각 중요 장소의 좌표를 나타내는 두 정수 xx와 yy가 주어진다 (−100≤x,y≤100-100 \le x, y \le 100). 중앙역의 좌표는 항상 (0,0)(0, 0)이다. 한 데이터 집합 안의 모든 좌표 쌍은 서로 다르며, (0,0)(0, 0)인 것은 없다.

출력

각 데이터 집합에 대해, 모든 중요 장소가 어떤 지하철역으로부터 거리 dd 이하가 되도록 하는 데 필요한 지하철 노선의 최소 개수를 한 줄에 하나의 정수로 출력한다.

예제1

  1. 예제 1

    입력
    2
    7 1
    -1 -4
    -3 1
    -3 -1
    2 3
    2 4
    2 -2
    6 -2
    4 0
    0 4
    -12 18
    0 27
    -34 51
    
    예상 출력
    4
    2