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 Fortran (gfortran v4.8.4) (judge verdict: Wrong Answer)

program fff
implicit none

integer :: n, i, j, k, co
real(8) :: z1, res
real(8),allocatable,dimension(:) :: x, y
real(8),allocatable,dimension(:,:) :: z

read*, n
allocate(x(n),y(n))
do i = 1, n
read*, x(i), y(i)
end do

if (n==2) then
print*, ((x(1)-x(2))**2 + (y(1)-y(2))**2)*1/2
return
end if

allocate(z(4,n*(n-1)*(n-2)/6))

co = 0
z = 0.0D0
do i = 1, n
	do j = i+1, n
    	do k = j+1, n
        co = co + 1
        z(1,co) = ((x(i)-x(j))**2 + (y(i)-y(j))**2)**0.5D0
		z(2,co) = ((x(j)-x(k))**2 + (y(j)-y(k))**2)**0.5D0
        z(3,co) = ((x(k)-x(i))**2 + (y(k)-y(i))**2)**0.5D0
        z1 = (z(1,co)+z(2,co)+z(3,co))*0.5D0
        z(4,co) = (z1*(z1-z(1,co))*(z1-z(2,co))*(z1-z(3,co)))**0.5D0
		z(4,co) = z(1,co)*z(2,co)*z(3,co)/(4*z(4,co))
			if (z(1,co)*(2**0.5)>z(2,co)+z(3,co)) z(4,co) = z(1,co)*0.5 
			if (z(2,co)*(2**0.5)>z(3,co)+z(1,co)) z(4,co) = z(2,co)*0.5 
			if (z(3,co)*(2**0.5)>z(1,co)+z(2,co)) z(4,co) = z(3,co)*0.5 
        end do
    end do
end do

res = 0.0D0
do i = 1, (n*(n-1)*(n-2)/6)
	if (res<z(4,i)) res = z(4,i)
end do

print*, res

end program