#abc139f. [abc139_f]Engines

[abc139_f]Engines

问题描述

E869120最初站在二维平面上的原点(0,0)(0, 0)

他有NN个引擎,可以按照以下方式使用:

  • 当E869120使用第ii个引擎时,他的xxyy坐标分别变化为xix_iyiy_i。换句话说,如果E869120从坐标(X,Y)(X, Y)使用第ii个引擎,他将移动到坐标(X+xi,Y+yi)(X + x_i, Y + y_i)
  • E869120可以以任意顺序使用这些引擎,但每个引擎最多只能使用一次。他也可以选择不使用某些引擎。

他想尽可能远离原点。设(X,Y)(X, Y)是他的最终坐标。找到sqrtX2+Y2\\sqrt{X^2 + Y^2}的最大可能值,即与原点的距离。

约束条件

  • 1leqNleq1001 \\leq N \\leq 100
  • 1000000leqxileq1000000-1 \\ 000 \\ 000 \\leq x_i \\leq 1 \\ 000 \\ 000
  • 1000000leqyileq1000000-1 \\ 000 \\ 000 \\leq y_i \\leq 1 \\ 000 \\ 000
  • 输入中所有值都为整数。

输入格式

输入以以下格式从标准输入给出:

NN x1x_1 y1y_1 x2x_2 y2y_2 :: :: xNx_N yNy_N

输出格式

以实数形式输出可能的最大最终距离到原点。当相对或绝对误差不超过101010^{-10}时,您的输出被认为是正确的。

示例输入1

3
0 10
5 -5
-5 -5

示例输出1

10.000000000000000000000000000000000000000000000000

如果我们按照以下三种方式之一使用引擎,从原点的最终距离可以为1010

  • 使用引擎11移动到(0,10)(0, 10)
  • 使用引擎22移动到(5,5)(5, -5),然后使用引擎33移动到(0,10)(0, -10)
  • 使用引擎33移动到(5,5)(-5, -5),然后使用引擎22移动到(0,10)(0, -10)

距离不能大于1010,因此最大可能距离为1010

示例输入2

5
1 1
1 0
0 1
-1 0
0 -1

示例输出2

2.828427124746190097603377448419396157139343750753

最大可能的最终距离是2sqrt2=2.82842...2 \\sqrt{2} = 2.82842...。实现它的一种方法是:

  • 使用引擎11移动到(1,1)(1, 1),然后使用引擎22移动到(2,1)(2, 1),最后使用引擎33移动到(2,2)(2, 2)

示例输入3

5
1 1
2 2
3 3
4 4
5 5

示例输出3

21.213203435596425732025330863145471178545078130654

如果我们按照顺序使用所有引擎$1 \\rightarrow 2 \\rightarrow 3 \\rightarrow 4 \\rightarrow 5$,最终将在(15,15)(15, 15)结束,并与原点的距离为15sqrt2=21.2132...15 \\sqrt{2} = 21.2132...

示例输入4

3
0 0
0 1
1 0

示例输出4

1.414213562373095048801688724209698078569671875376

可以存在无用的引擎,其(xi,yi)=(0,0)(x_i, y_i) = (0, 0)

示例输入5

1
90447 91000

示例输出5

128303.000000000000000000000000000000000000000000000000

请注意,只能有一个引擎。

示例输入6

2
96000 -72000
-72000 54000

示例输出6

120000.000000000000000000000000000000000000000000000000

也只能有两个引擎。

示例输入7

10
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20

示例输出7

148.660687473185055226120082139313966514489855137208