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
                ANS=max(ANS,min(R(i,j,k)/2.0,max(dist(i,j)/2.0,dist(i,k)/2.0,dist(j,k)/2.0)))
            end do
        end do
    end do
    print"(f0.14)",ANS
contains
function R(i,j,k)
    integer::i,j,k
    real(16) R
    R=dist(j,k)/sqrt(real(1,16)-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
