N=gets.to_i
xs,ys=N.times.map{gets.split.map(&:to_i)}.transpose
l=0.to_f;r=1000.to_f
100.times do |i|
    c1=(2*l+r)/3
    c2=(l+2*r)/3
    c1d=(0...N).to_a.map{|e|((xs[e]-c1)**2+ys[e]**2)**(1/2.0)}.max
    c2d=(0...N).to_a.map{|e|((xs[e]-c2)**2+ys[e]**2)**(1/2.0)}.max
    if c1d<c2d
        r=c2
    else
        l=c1
    end
end
xx=l
l=0.to_f;r=1000.to_f
100.times do |i|
    c1=(2*l+r)/3
    c2=(l+2*r)/3
    c1d=(0...N).to_a.map{|e|((xs[e]-xx)**2+(ys[e]-c1)**2)**(1/2.0)}.max
    c2d=(0...N).to_a.map{|e|((xs[e]-xx)**2+(ys[e]-c2)**2)**(1/2.0)}.max
    if c1d<c2d
        r=c2
    else
        l=c1
    end
end
puts (0...N).to_a.map{|e|((xs[e]-xx)**2+(ys[e]-l)**2)**(1/2.0)}.max
