CF1059D Nature Reserve
题目描述
有一片森林,我们将其建模为一个平面,生活着 $n$ 只珍稀动物。第 $i$ 只动物的巢穴位于点 $(x_{i}, y_{i})$。为了保护它们,决定建立一个自然保护区。
保护区必须是一个包含所有巢穴的圆。此外,森林中有一条笔直的河流流过。所有动物都要到这条河喝水,因此保护区必须与河流至少有一个公共点。另一方面,河上有船只不断航行,所以保护区与河流的公共点不能超过一个。
为方便起见,科学家们对坐标系进行了变换,使得河流的方程为 $y = 0$。请判断是否可以建立这样的保护区,如果可以,求出最小可能的半径。
输入格式
第一行包含一个整数 $n$($1 \le n \le 10^5$),表示动物的数量。
接下来的 $n$ 行,每行包含两个整数 $x_{i}$、$y_{i}$($-10^7 \le x_{i}, y_{i} \le 10^7$),表示第 $i$ 只动物巢穴的坐标。保证 $y_{i} \neq 0$,且没有两个巢穴重合。
输出格式
如果无法建立保护区,输出 $-1$。否则,输出最小半径。若你的答案与标准答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。
形式化地,设你的答案为 $a$,标准答案为 $b$,当 $\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6}$ 时,视为正确。
说明/提示
在第一个样例中,最优的做法是将保护区圆心设在 $(0,\, 0.5)$,半径为 $0.5$。
在第二个样例中,无法建立保护区。
在第三个样例中,最优的做法是将保护区圆心设在 $(\frac{1}{2},\, \frac{5}{8})$,半径为 $\frac{5}{8}$。
由 ChatGPT 4.1 翻译