枚举 · 例18-最大的半径
时间限制:C/C++/Rust/Pascal 9秒,其他语言18秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}本题翻译自 [Codeforces Round 194 (Div. 1)] Summer Earnings
\hspace{15pt}二维平面上有 n 个点,你需要从中任选三个点画三个半径为 r 的圆,这三个圆可以相切,但不能相交。求解能够画出的最大的 r

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(3 \leqq n \leqq 3000 \right) 代表平面上点的数量。
\hspace{15pt}此后 n 行,第 i 行输入两个整数 x_i,y_i \left( -10^4 \leqq x_i, y_i \leqq 10^4 \right) 代表第 i 个点所在的横、纵坐标。

输出描述:

\hspace{15pt}在一行上输出一个实数,代表你能取到的最大的 r

\hspace{15pt}由于实数的计算存在误差,当误差的量级不超过 10^{-6} 时,您的答案都将被接受。具体来说,设您的答案为 a ,标准答案为 b ,当且仅当 \frac{|a-b|}{\max(1,|b|)}\leqq 10^{-6} 时,您的答案将被接受。
示例1

输入

复制
3
0 0
0 2
2 2

输出

复制
1

说明

示例2

输入

复制
7
2 -3
-2 -3
3 0
-3 -1
1 -2
2 -2
-1 0

输出

复制
1.58113883008418980000

备注:

\hspace{15pt}请注意本题不同寻常的时间限制。