N = gets.to_i
PS = (0...N).map{ gets.split.map &:to_i }
EPS = 1e-16
#p EPS

def contains_all(cx,cy,r2,points)
  r = points.all?{ |x,y| r2 - (cx-x)**2 - (cy-y)**2 >= -EPS }
 # $stderr.puts "(#{cx},#{cy}) x #{r2} -> #{r}"
  r
end

r = 1000000000000000
(0...N).each{ |i|
  xa,ya = PS[i]
  (i+1...N).each{ |j|
    xb,yb = PS[j]
    # check for doublet
    r2 = ((xa-xb) ** 2 + (ya-yb) ** 2) / 4.0
    centx = (xa+xb)/2.0
    centy = (ya+yb)/2.0
    if r2 < r && contains_all(centx, centy, r2, PS)
      #p [i, j, centx, centy, r2]
      r = [r, r2].min
    end
    
  	c2 = (xa-xb)**2 + (ya-yb)**2
  	c1 = Math.sqrt(c2)
    (j+1...N).each{ |k|
      # check for triplet
      xc,yc = PS[k]
  	  a2 = (xb-xc)**2 + (yb-yc)**2
  	  b2 = (xa-xc)**2 + (ya-yc)**2
	  a1 = Math.sqrt(a2)
  	  b1 = Math.sqrt(b2)
      ae = a2*(b2+c2-a2); be = b2*(a2+c2-b2); ce = c2*(a2+b2-c2)
      d = ae + be + ce
      next if d == 0
      centx = (ae*xa + be*xb + ce*xc) / d.to_f
      centy = (ae*ya + be*yb + ce*yc) / d.to_f
      r2 = (a1*b1*c1) ** 2 / (a1+b1+c1)*(-a1+b1+c1)*(a1-b1+c1)*(a1+b1-c1)
      #$stderr.puts Math.sqrt(r2)
      if r2 < r && contains_all(centx, centy, r2, PS)
       	#p [i, j, k, centx, centy, r2]
      	r = r2
     end
    }
  }
}
p Math.sqrt(r)