만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

구와 쿼리

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

요약
3차원 공간의 점 N개와 구 M개가 주어질 때, 각 구 안에 들어가는 점의 개수를 세어 출력한다. 표면 위의 점도 포함한다.
난이도

보통10점 중 6점

유형
기하, 정렬, 이분 탐색, 구현
정답자
아직 제출이 없습니다

문제

3차원 좌표 공간에 점이 NN개 있다. 쿼리는 구를 하나 지정하고, 그 구 안에 점이 몇 개 있는지 묻는다.

  • x y z r: 중심이 (x,y,z)(x, y, z)이고 반지름이 rr인 구 안에 있는 점의 개수를 출력한다.

구의 표면 위에 있는 점도 구 안에 있는 점으로 센다. 즉 점 (a,b,c)(a, b, c)는 (a−x)2+(b−y)2+(c−z)2≤r2(a - x)^2 + (b - y)^2 + (c - z)^2 \le r^2을 만족할 때 구 안에 있다. 좌표가 같은 점이 여러 개 주어질 수 있으며, 이런 점은 각각 따로 센다.

입력

첫째 줄에 점의 개수 NN이 주어진다. (1≤N≤100,0001 \le N \le 100{,}000)

다음 NN개 줄에 점의 좌표 xx, yy, zz가 정수로 주어진다. (0≤x,y,z≤1,000,0000 \le x, y, z \le 1{,}000{,}000)

그다음 줄에 쿼리의 개수 MM이 주어진다. (1≤M≤100,0001 \le M \le 100{,}000)

다음 MM개 줄에 쿼리의 정보 xx, yy, zz, rr이 정수로 주어진다. (0≤x,y,z≤1,000,0000 \le x, y, z \le 1{,}000{,}000, 1≤r≤1,000,0001 \le r \le 1{,}000{,}000)

출력

쿼리마다 답을 한 줄에 하나씩, 입력에 주어진 순서대로 출력한다.

예제2

  1. 예제 1

    입력
    5
    5 9 1
    2 7 2
    9 5 3
    5 10 2
    6 10 1
    10
    5 3 1 4
    4 3 3 2
    8 9 2 4
    1 10 3 4
    8 2 1 2
    3 8 2 2
    1 9 2 3
    7 2 3 3
    10 4 5 3
    6 5 10 2
    
    예상 출력
    0
    0
    3
    1
    0
    1
    1
    0
    1
    0
    
  2. 예제 2

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