n = gets.to_i
e = []
n.times { e << gets.split.map(&:to_f) }

# 動的計画法を用いる

d = []
d << [0, 0]

n.times { |i|
  l = d.length
  l.times { |j| d << [d[j][0] + e[i][0], d[j][1] + e[i][1]] }
}

puts d.map { |x, y| Math.sqrt(x**2 + y**2) }.max
