#最小包含円問題

#凸包(外側の点を抜き出す)
def totuhou()
  xy_dup = XY.map(&:dup)
  res = [xy_dup[0]]
  loop do
    nindex = 0
    sita_min = 2*Math::PI
    r_min = Float::INFINITY
    xy_dup.size.times do |i|
      next if xy_dup[i] == res.last
      r = distance([res.last, xy_dup[i]])
      sita = angle([res.last, xy_dup[i]])
      sita += 2*Math::PI if sita < 0
      if sita_min > sita || (sita_min == sita && r_min > r)
        nindex = i
        sita_min = sita
        r_min = r
      end
    end
    if res.first == xy_dup[nindex]
      break
    else
      res << xy_dup.delete_at(nindex)
    end
  end
  res
end

#凸包の三点から半径を計算する
def radius(pos_ary)
  res = Float::INFINITY
  pos_ary.combination(3).each do |data|
    pa, pb, pc = data
    sita_a = (angle([pa, pb]) - angle([pa, pc])).abs
    sita_b = (angle([pb, pa]) - angle([pb, pc])).abs
    sita_c = Math::PI - sita_a - sita_b
    center_pos = []
    r = 0
    if sita_a < Math::PI/2 && sita_b < Math::PI/2 && sita_c < Math::PI/2
      center_pos = circlecenter(data)
      r = distance([center_pos, pa])
      next if center_pos.empty?
    else
      pp = [pa, pb]
      if sita_a >= Math::PI/2
        pp = [pb, pc]
      elsif sita_b >= Math::PI/2
        pp = [pa, pc]
      end
      center_pos = [(pp[0][0]+pp[1][0])/2.0, (pp[0][1]+pp[1][1])/2.0]
      r = distance([center_pos, pp[0]])
    end
    pos_ary.each_with_index do |pos, i|
      rr = distance([center_pos, pos])
      break if rr > r
      if i == pos_ary.size - 1
        res = [res, r].min
      end
    end
  end
  res
end

def distance(two_point_xy_ary)
  (x1, y1), (x2, y2) = two_point_xy_ary
  Math.sqrt((x1 - x2) ** 2 + (y1 - y2) **2 )
end

def angle(two_point_xy_ary)
  (x1, y1), (x2, y2) = two_point_xy_ary
  Math.atan2(y2 - y1, x2 - x1)
end
  
def circlecenter(three_point_xy_ary)
  (x1, y1), (x2, y2), (x3, y3) = three_point_xy_ary
  d = 2 * ((y1 - y3) * (x1 - x2) - (y1 - y2) * (x1 - x3))
  if d == 0
    []
  else
    cx = ((y1 - y3) * (y1 ** 2 - y2 ** 2 + x1 ** 2 - x2 ** 2) - (y1 - y2) * (y1 ** 2 - y3 ** 2 + x1 ** 2 - x3 ** 2)) / d
    cy = ((x1 - x3) * (x1 ** 2 - x2 ** 2 + y1 ** 2 - y2 ** 2) - (x1 - x2) * (x1 ** 2 - x3 ** 2 + y1 ** 2 - y3 ** 2)) / -d
    [cx, cy]
  end
end

N = gets.to_i
XY = N.times.map{gets.split.map(&:to_i)}.sort_by{|a| [a[1], a[0]]}

if N == 2
  puts sprintf("%.12f", distance(XY)/2)
else
  puts sprintf("%.12f", radius(totuhou()))
end
