#ABC139F. 引擎向量

引擎向量

引擎向量

题目描述

E869120 君一开始站在二维平面上的原点 (0,0)(0, 0)

他有 NN 个引擎。引擎的使用方法和功能如下:

  • 使用第 ii 个引擎,E869120 君所在位置的 X 坐标变化 xix_i、Y 坐标变化 yiy_i。也就是说,当 E869120 君在坐标 (X,Y)(X, Y) 时使用第 ii 个引擎,就会移动到坐标 (X+xi,Y+yi)(X + x_i, Y + y_i)
  • 引擎可以按任意顺序使用,但每个引擎只能使用 11 次。不过,也可以不使用某些引擎。

他想去离原点最远的地方。

设最后到达的地点的坐标为 (X,Y)(X, Y),求原点到此点的距离 X2+Y2\sqrt{X^2 + Y^2} 的最大值。

输入格式

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

NN
x1x_1 y1y_1
x2x_2 y2y_2
:: ::
xNx_N yNy_N

输出格式

输出最后到达的地点离原点距离的最大值(实数)。

当输出与真实答案的相对误差或绝对误差在 101010^{-10} 以内时,判定为正确。

样例

3
0 10
5 -5
-5 -5
10.000000000000000000000000000000000000000000000000

巧妙地使用引擎,可以使最后到达的地点离原点的距离达到 1010

有以下 33 种方法:

  • 使用引擎 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

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

最后到达的地点离原点距离的最大值为 22=2.82842...2 \sqrt{2} = 2.82842...

实现这一目标的方法之一如下:

  • 使用引擎 11 移动到 (1,1)(1, 1),之后使用引擎 22 移动到 (2,1)(2, 1),最后使用引擎 33 移动到 (2,2)(2, 2)
5
1 1
2 2
3 3
4 4
5 5
21.213203435596425732025330863145471178545078130654

按引擎 $1 \rightarrow 2 \rightarrow 3 \rightarrow 4 \rightarrow 5$ 的顺序全部使用,最终到达 (15,15)(15, 15),离原点的距离为 152=21.2132...15 \sqrt{2} = 21.2132...

3
0 0
0 1
1 0
1.414213562373095048801688724209698078569671875376

也可能存在 (xi,yi)=(0,0)(x_i, y_i) = (0, 0) 这种没有任何意义的引擎。

1
90447 91000
128303.000000000000000000000000000000000000000000000000

请注意也可能只有 11 个引擎。

2
96000 -72000
-72000 54000
120000.000000000000000000000000000000000000000000000000

也可能只有 22 个引擎。

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

数据范围

  • 1N1001 \leq N \leq 100
  • 1 000 000xi1 000 000-1 \ 000 \ 000 \leq x_i \leq 1 \ 000 \ 000
  • 1 000 000yi1 000 000-1 \ 000 \ 000 \leq y_i \leq 1 \ 000 \ 000
  • 所有输入均为整数
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
1781
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签