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

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

자리 간격

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

요약
각 테스트 케이스마다 유클리드 거리가 d 미만인 점 쌍의 개수를 셉니다.
난이도

보통10점 중 5점

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

문제

프로그래밍 대회가 열리는 동안 팀끼리 가까이 앉으면 안 된다. 가까이 앉으면 옆 팀의 답안을 베낄 수 있기 때문이다. 각 팀의 위치와 두 팀 사이에 필요한 최소 유클리드 거리 dd가 주어진다. 너무 가까이 앉은 팀 쌍이 몇 개인지 세어라.

두 팀 사이의 유클리드 거리가 dd보다 작으면 너무 가까이 앉은 것이다. 거리가 정확히 dd인 쌍은 세지 않는다.

입력

첫째 줄에 테스트 케이스의 개수 tt (1≤t≤1001 \le t \le 100)가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.

  • 첫째 줄에 팀의 수 nn (1≤n≤1000001 \le n \le 100000)과 두 팀 사이의 최소 거리 dd (1≤d≤501 \le d \le 50)가 주어진다.
  • 다음 nn개 줄에 ii번째 팀의 좌표 xix_i (0≤xi≤10000000000 \le x_i \le 1000000000)와 yiy_i (0≤yi≤10000000000 \le y_i \le 1000000000)가 주어진다. 좌표가 같은 두 팀은 없다.

출력

각 테스트 케이스마다 너무 가까이 앉은 팀 쌍의 개수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    1
    6 3
    0 0
    0 3
    2 1
    2 3
    3 0
    3 1
    
    예상 출력
    8