Tìm kiếm khách sạn

View as PDF

Time limit: 1.0s , Memory limit: 256M , Points: 15 (partial)

Hằng năm, đội tuyển OLP/ICPC của các trường Đại học phải di chuyển đến các địa phương khác để tham gia kỳ thi lập trình. Một bài toán thực tế đặt ra là: tìm các khách sạn hoặc nhà nghỉ nằm gần địa điểm thi đấu, nhằm lựa chọn nơi cư trú tối ưu.

Bài toán được mô tả như sau:

N khách sạn (hoặc nhà nghỉ) trên địa bàn tỉnh tổ chức thi đấu. Với mỗi truy vấn gồm một địa điểm thi đấu A(x_a, y_a) và bán kính R.

Hãy đếm xem có bao nhiêu khách sạn nằm trong hoặc trên đường tròn bán kính R tính từ điểm A.

Hai điểm được coi là nằm trong khoảng cách R nếu khoảng cách Euclid giữa chúng không lớn hơn R + \varepsilon, với \varepsilon = 10^{-6}.

Input

  • Dòng đầu tiên chứa hai số nguyên N, Q — số lượng khách sạn và số lượng truy vấn (1 \le N, Q \le 10^5).

  • N dòng tiếp theo, mỗi dòng chứa hai số thực x_i, y_i — tọa độ của khách sạn thứ i, thỏa x_i, y_i \in [-10^5, 10^5].

  • Q dòng tiếp theo, mỗi dòng chứa ba số thực x_j, y_j, R_j — tọa độ truy vấn và bán kính cần kiểm tra với 1 \le R_j \le 5000.

Output

In ra Q dòng, mỗi dòng chứa một số nguyên — số lượng khách sạn nằm trong hoặc trên hình tròn bán kính R_j từ điểm (x_j, y_j).

Sample Input

10 3
-10.0 -10.0
-10.0 0.0
-10.0 10.0
0.0 -10.0
0.0 0.0
0.0 10.0
10.0 -10.0
10.0 0.0
10.0 10.0
5.0 5.0
0.0 0.0 10.0
10.0 10.0 5.0
-10.0 -10.0 1.0

Sample Output

6
1
1

Comments