N = gets.to_i
E = []
N.times{|i|
  x, y = gets.chomp.split(" ").map(&:to_i)
  next if x == 0 && y == 0
  E << Complex(x, y)
}

def solve(ans, c, lst)
  wk = c
  while true do
    t, idx = lst.each_with_index.min_by{|e, idx|
      tmp = (wk.angle - e.angle).abs
      tmp = 2 * Math::PI - tmp if tmp > Math::PI
      tmp
    }
    tmp = (wk.angle - t.angle).abs
    tmp = 2 * Math::PI - tmp if tmp > Math::PI
    break if tmp > (Math::PI / 2.0)
    wk += t
    lst.delete_at(idx)
    break if lst.empty?
  end
  wk -= c
  ans < wk.abs ? wk.abs : ans
end

ans = 0
E.each{|e|
  ans = solve(ans, e, E.dup)
}

puts ans
