Олимпиадный тренинг

Задача . G. Допустимые отрезки


Задача

Темы: геометрия *3200

Вам даны \(n\) различных точек \(p_1, p_2, \ldots, p_n\) на плоскости, а также положительное целое число \(R\).

Найдите количество пар индексов \((i, j)\) таких, что \(1 \le i < j \le n\), и для всех возможных \(k\) (\(1 \le k \le n\)) расстояние от точки \(p_k\) до отрезка, образованного точками \(p_i\) и \(p_j\), не больше \(R\).

Входные данные

Первая строка содержит два целых числа \(n\), \(R\) (\(1 \le n \le 3000\), \(1 \le R \le 10^5\)) — количество точек на плоскости и максимальное возможное расстояние от точки до отрезка.

Каждая из следующих \(n\) строк содержит два целых числа \(x_i\), \(y_i\) (\(-10^5 \le x_i, y_i \le 10^5\)), которые задают \(i\)-ю точку \(p_i=(x_i, y_i)\). Все точки различны.

Гарантируется, что ответ на задачу не изменится при изменении значения параметра \(R\) на величину не более \(10^{-2}\).

Выходные данные

Выведите единственное целое число — количество подходящих пар \((i, j)\).

Примечание

В первом примере подходит единственная пара точек \((-3, 0)\), \((3, 0)\). Расстояние до отрезка между этими точками от точек \((0, 1)\) и \((0, -1)\) равно \(1\), что меньше \(R=2\).

Во втором примере подходят все возможные пары точек.


Примеры
Входные данныеВыходные данные
1 4 2
0 1
0 -1
3 0
-3 0
1
2 3 3
1 -1
-1 -1
0 1
3

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w642
Комментарий учителя