CF1584G Eligible Segments

题目描述

给定 $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$。 在第二个样例中,所有可能的点对都满足条件。 由 ChatGPT 4.1 翻译