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 Julia (0.5.0) (judge verdict: Wrong Answer)

parseInt(x) = parse(Int, x)
parseMap(x::Array{SubString{String},1}) = map(parseInt, x)

function main()
	n = readline() |> parseInt
	a = zeros(Int,n,2)
	for i in 1:n
		a[i,:]=readline() |> split |> parseMap
	end
	r = 0
	rp = (0,0)
	for i in 1:n-1
		x1 = a[i,1]
		y1 = a[i,2]
		for j in i+1:n
			x2 = a[j,1]
			y2 = a[j,2]
			v = abs(x2-x1)^2+abs(y2-y1)^2
			if v>r
				r = v
				rp = (i,j)
			end
		end
	end
	f = (a[rp[1],2]-a[rp[2],2])
	g = (-a[rp[1],1]+a[rp[2],1])
	h = (a[rp[2],2]*a[rp[1],1]-a[rp[1],2]*a[rp[2],1])
	q = 0
	qx = 0
	for i in 1:n
		if i!=rp[1]&&i!=rp[2]
			x = a[i,1]
			y = a[i,2]
			v = abs(f*x+g*y+h)
			if v>q
				q = v
				qx = i
			end
		end
	end
	if qx==0
		va = a[rp[1],:]
		vb = a[rp[2],:]
		println(sqrt((va[1]-vb[1])^2+(va[2]-vb[2])^2)*0.5)
	else
		va = a[rp[1],:]
		vb = a[rp[2],:]
		vc = a[qx,:]
		la = sqrt((va[1]-vb[1])^2+(va[2]-vb[2])^2)
		lb = sqrt((vc[1]-vb[1])^2+(vc[2]-vb[2])^2)
		lc = sqrt((va[1]-vc[1])^2+(va[2]-vc[2])^2)
		ss = (la+lb+lc)*0.5
		s = sqrt(ss*(ss-la)*(ss-lb)*(ss-lc))
		ra = acos((lb^2+lc^2-la^2)/(2*lb*lc))
		println(min(0.5*la/sin(pi-ra),sqrt((va[1]-vb[1])^2+(va[2]-vb[2])^2)*0.5))
	end
end

main()