output_description: Print the maximum possible final distance from the origin, as a real value.
  Your output is considered correct when the relative or absolute error from the
  true answer is at most 10^{-10}.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      x_1 y_1
      x_2 y_2
       : :
      x_N y_N
attempt: def solve():
      from math import atan2, degrees, hypot
  
      n = int(input())
      txy = []
      sx, sy = 0, 0
      for i in range(n):
          a, b = map(int, input().split())
          theta_0 = degrees(atan2(b, a))
          sx += a
          sy += b
          txy.append([theta_0, a, b])
      txy.sort()
      ans = hypot(sx, sy)
      for i in range(n):
          for j in range(i + 1, n):
              tx, ty = 0, 0
              for k in range(i, j):
                  theta, x, y = txy[k]
                  tx += x
                  ty += y
                  ans = max(ans, hypot(tx, ty))
                  ans = max(ans, hypot(sx - tx, sy - ty))
      print(ans)
  
  
  solve()
  
problem_description: Statement
  
  E869120 is initially standing at the origin (0, 0) in a two-dimensional plane.
  
  He has N engines, which can be used as follows:
  
    * When E869120 uses the i-th engine, his X\- and Y-coordinate change by x_i and y_i, respectively. In other words, if E869120 uses the i-th engine from coordinates (X, Y), he will move to the coordinates (X + x_i, Y + y_i).
    * E869120 can use these engines in any order, but each engine can be used at most once. He may also choose not to use some of the engines.
  
  He wants to go as far as possible from the origin. Let (X, Y) be his final
  coordinates. Find the maximum possible value of \sqrt{X^2 + Y^2}, the distance
  from the origin.
samples: [{"input": "3\n    0 10\n    5 -5\n    -5 -5", "output": "10.000000000000000000000000000000000000000000000000\n    \n\nThe final distance from the origin can be 10 if we use the engines in one of\nthe following three ways:\n\n  * Use Engine 1 to move to (0, 10).\n  * Use Engine 2 to move to (5, -5), and then use Engine 3 to move to (0, -10).\n  * Use Engine 3 to move to (-5, -5), and then use Engine 2 to move to (0, -10).\n\nThe distance cannot be greater than 10, so the maximum possible distance is\n10.\n\n* * *"}, {"input": "5\n    1 1\n    1 0\n    0 1\n    -1 0\n    0 -1", "output": "2.828427124746190097603377448419396157139343750753\n    \n\nThe maximum possible final distance is 2 \\sqrt{2} = 2.82842.... One of the\nways to achieve it is:\n\n  * Use Engine 1 to move to (1, 1), and then use Engine 2 to move to (2, 1), and finally use Engine 3 to move to (2, 2).\n\n* * *"}, {"input": "5\n    1 1\n    2 2\n    3 3\n    4 4\n    5 5", "output": "21.213203435596425732025330863145471178545078130654\n    \n\nIf we use all the engines in the order 1 \\rightarrow 2 \\rightarrow 3\n\\rightarrow 4 \\rightarrow 5, we will end up at (15, 15), with the distance 15\n\\sqrt{2} = 21.2132... from the origin.\n\n* * *"}, {"input": "3\n    0 0\n    0 1\n    1 0", "output": "1.414213562373095048801688724209698078569671875376\n    \n\nThere can be useless engines with (x_i, y_i) = (0, 0).\n\n* * *"}, {"input": "1\n    90447 91000", "output": "128303.000000000000000000000000000000000000000000000000\n    \n\nNote that there can be only one engine.\n\n* * *"}, {"input": "2\n    96000 -72000\n    -72000 54000", "output": "120000.000000000000000000000000000000000000000000000000\n    \n\nThere can be only two engines, too.\n\n* * *"}, {"input": "10\n    1 2\n    3 4\n    5 6\n    7 8\n    9 10\n    11 12\n    13 14\n    15 16\n    17 18\n    19 20", "output": "148.660687473185055226120082139313966514489855137208"}]