Point = Struct.new(:x, :y)
LOOPS = 60

def distance(x, y, ps)
  #点群との最大の距離を返す
  max = 0
  ps.each do |p|
    ds = Math.sqrt((p.x - x) ** 2 + (p.y - y) ** 2)
    max = ds if max < ds
  end

  return max
end

def ternary_search_y(x, ps)
  #x, yについて三分探索する
  bottom = 0.0
  top = 1000.0

  LOOPS.times do
    onethree = (top - bottom) / 3
    first = bottom + onethree
    second = bottom + onethree * 2
    ds1 = distance(x, first, ps)
    ds2 = distance(x, second, ps)

    if ds1 > ds2
      bottom = first
    else
      top = second
    end
  end

  #距離を返す
  return distance(x, bottom, ps)
end

def ternary_search(ps)
  #xについて三分探索する
  left = 0.0
  right = 1000.0

  ds1 = 0

  LOOPS.times do 
    onethree = (right - left ) / 3
    first = left + onethree
    second = left + onethree * 2
    ds1 = ternary_search_y(first, ps)
    ds2 = ternary_search_y(second, ps)

    if ds1 > ds2
      left = first
    else
      right = second
    end
  end

  return ds1
end

def main
  n = gets.chomp.to_i
  points = []
  n.times do |i|
    input = gets.chomp.split.map(&:to_i)
    points.push(Point.new(x=input[0], y=input[1]))
  end

  puts ternary_search(points)
end

main