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 ABC151F
    implicit none
    integer::N
    integer,allocatable,dimension(:,:)::xy
    real(16)::ANS
    integer::i,j,k
    read*,N
    allocate(xy(N,2))
    do i=1,N
        read*,xy(i,1),xy(i,2)
    end do
    if(N==2)then
        print"(f0.14)",dist(1,2)/2.0
        stop
    endif
    ANS=0
    do i=1,N-2
        do j=i+1,N-1
            do k=j+1,N
                if((XY(k,1)-XY(i,1))*(XY(j,2)-XY(i,2))==(XY(k,2)-XY(i,2))*(XY(j,1)-XY(i,1)))then
                    ANS=max(ANS,max(dist(i,j),dist(i,k),dist(j,k))/real(2.0,16))
                endif
                ANS=max(ANS,min(R(i,j,k)/real(2.0,16),max(dist(i,j),dist(i,k),dist(j,k))/real(2,16)))
            end do
        end do
    end do
    print"(f0.20)",ANS
contains
function R(i,j,k)
    integer::i,j,k
    real(16) R
    R=dist(j,k)/sqrt(1-NAI(i,j,k)**2)
    if(1-NAI(i,j,k)**2<0.00000001)R=0
end function
function dist(i,j)
    integer::i,j
    real(16)::dist
    dist=sqrt(real((XY(i,1)-XY(j,1))**2+(XY(i,2)-XY(j,2))**2,16))
end function
function NAI(i,j,k)
    integer::i,j,k
    real(16)::NAI
    NAI=real((XY(j,1)-XY(i,1))*(XY(k,1)-XY(i,1))+(XY(j,2)-XY(i,2))*(XY(k,2)-XY(i,2)),kind=16)/dist(i,j)/dist(i,k)
end function
end program ABC151F