Đoạn thẳng cắt đường tròn

View as PDF

Submit solution

Points: 0.10
Time limit: 1.0s
Memory limit: 64M
Input: stdin
Output: stdout

Author:
Problem type

Trong mặt phẳng tọa độ ~Oxy~, cho đường tròn có bán kính ~R~ có tâm đặt ở gốc tọa độ, cùng ~n~ điểm có tọa độ nguyên được đánh số từ ~1~ đến ~n~ (không nhất thiết phân biệt). Hãy đếm số cặp ~(i,j)~ (với ~i < j~) sao cho đoạn thẳng nối cặp điểm thứ ~i~ và ~j~ sẽ có ít nhất một điểm chung với đường tròn (trong trường hợp hai điểm có tọa độ trùng nhau thì đoạn thẳng nối chúng coi như suy biến thành một điểm)?

Input

Dòng đầu tiên gồm số nguyên dương ~n~ với ~2 \le n \le 10^5~ và số nguyên dương ~R~ với ~1 \le R \le 10^9~.

Trong ~n~ dòng tiếp theo, mỗi dòng sẽ là thông tin tọa độ của các điểm đã cho, các tọa độ có trị tuyệt đối không quá ~10^5.~

Giả sử rằng không có đoạn thẳng nào tiếp xúc với đường tròn.

Output

Số cặp chỉ số thỏa mãn đề bài.

Sample input 1

2 2
1 1
2 2

Sample output 1

1

Sample input 2

2 5
0 5
0 5

Sample output 2

1

Giải thích: trong VD1, ta thấy có 1 điểm nằm trong và 1 điểm nằm ngoài đường tròn nên sẽ có 1 đoạn thẳng thỏa mãn, trong VD2, ta thấy hai điểm đó trùng nhau, nằm trên đường tròn nên đoạn thẳng (suy biến) nối chúng cũng thỏa mãn.


Comments

Please read the guidelines before commenting.


There are no comments at the moment.