【模板】最小圆覆盖Ⅰ ‖ 小范围
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}在二维平面上有 n 个不同的点 p_1,p_2,\dots,p_n ,第 i 个点的坐标 (x_i,y_i) 已经给定。
\hspace{15pt}你需要找到半径最小的一个圆,使得所有的点都在圆内或圆上。

输入描述:

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

输出描述:

\hspace{15pt}第一行输出一个实数,代表你所求得的最小圆的半径。
\hspace{15pt}第二行输出两个实数,代表你所求得的最小圆圆心坐标。

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

输入

复制
6
2 -1
-1 2
3 0
-4 2
2 3
-2 -1

输出

复制
3.640054944640
-0.5 1

说明

\hspace{15pt}该样例如下图所示。

示例2

输入

复制
6
2 3
0 1
3 -1
-4 1
-2 3
-2 -1

输出

复制
3.650808453872
-0.423076923077 0.269230769231

说明

\hspace{15pt}该样例如下图所示。