Problem:
Score : 600 points

Problem Statement

Given are N points (x_i, y_i) in a two-dimensional plane.

Find the minimum radius of a circle such that all the points are inside or on it.

Constraints

2 \leq N \leq 50

0 \leq x_i \leq 1000

0 \leq y_i \leq 1000

The given N points are all different.

The values in input are all integers.

Input

Input is given from Standard Input in the following format:

N
x_1 y_1
:
x_N y_N

Output

Print the minimum radius of a circle such that all the N points are inside or on it.

Your output will be considered correct if the absolute or relative error from our answer is at most 10^{-6}.

Sample Input 1

2
0 0
1 0

Sample Output 1

0.500000000000000000

Both points are contained in the circle centered at (0.5,0) with a radius of 0.5.

Sample Input 2

3
0 0
0 1
1 0

Sample Output 2

0.707106781186497524

Sample Input 3

10
10 9
5 9
2 0
0 0
2 7
3 3
2 5
10 0
3 7
1 9

Sample Output 3

6.726812023536805158

If the absolute or relative error from our answer is at most 10^{-6}, the output will be considered correct.

Solution in C++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
const int INF = (1<<30);
const ll INFLL = (1ll<<60);
const ll MOD = (ll)(1e9+7);
const long double EPS = 1e-9;

#define l_ength size

void mul_mod(ll& a, ll b){
	a *= b;
	a %= MOD;
}

void add_mod(ll& a, ll b){
	a = (a<MOD)?a:(a-MOD);
	b = (b<MOD)?b:(b-MOD);
	a += b;
	a = (a<MOD)?a:(a-MOD);
}


long double x[55],y[55];

int main(void){
	int n,i,j,k,t;
	long double cx,cy,r,d,ans=1e9,A,B,C,D,E,F;
	bool flag;
	cin >> n;
	for(i=0; i<n; ++i){
		cin >> x[i] >> y[i];
	}
	for(i=0; i<n; ++i){
		for(j=0; j<i; ++j){
			cx = (x[i]+x[j])/2.0L;
			cy = (y[i]+y[j])/2.0L;
			r = sqrt((x[i]-cx)*(x[i]-cx)+(y[i]-cy)*(y[i]-cy));
			flag = true;
			for(t=0; t<n; ++t){
				d = sqrt((x[t]-cx)*(x[t]-cx)+(y[t]-cy)*(y[t]-cy));
				if(d-r>EPS){
					flag = false;
					break;
				}
			}
			if(flag){
				ans = min(ans,r);
			}
		}
	}
	cout << fixed << setprecision(50) << ans << endl;
	return 0;
}