100 atcoder#ABC139F. [ABC139F] Engines
[ABC139F] Engines
配点: 点
問題文
E869120 君は最初、 次元平面上の原点 に立っています。
彼は 個のエンジンを持っています。エンジンの使い方と機能は以下のようになります。
- 個目のエンジンを使うと、E869120 君のいる場所の X 座標が 、Y 座標が 変化する。つまり、E869120 君が座標 にいるときに 個目のエンジンを使うと、座標 に移動する。
- エンジンはどのような順番で使ってもよいが、各エンジンは 回までしか使えない。ただし、使わないエンジンがあってもよい。
彼は、原点から最も遠い場所に行きたいです。 最後に到達する地点の座標を として、原点からの距離 の最大値を求めてください。
制約
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
最後に到達する地点の、原点からの距離の最大値を実数値として出力せよ。 ただし、実際の答えとの相対誤差または絶対誤差が 以内であれば正解とみなす。
3
0 10
5 -5
-5 -5
10.000000000000000000000000000000000000000000000000
うまくエンジンを使うと、最後に到達する地点の、原点からの距離を にすることができます。 これには次の 通りの方法があります。
- エンジン を使って に移動する
- エンジン を使って に移動し、その後エンジン を使って に移動する
- エンジン を使って に移動し、その後エンジン を使って に移動する
距離を より大きくする方法はないので、最大値は となります。
5
1 1
1 0
0 1
-1 0
0 -1
2.828427124746190097603377448419396157139343750753
最後に到達する地点の、原点からの距離の最大値は となります。 これを達成する方法として、次のようなものが挙げられます。
- エンジン を使って に移動し、その後エンジン を使って に移動し、最後にエンジン を使って に移動する
5
1 1
2 2
3 3
4 4
5 5
21.213203435596425732025330863145471178545078130654
エンジン $1 \rightarrow 2 \rightarrow 3 \rightarrow 4 \rightarrow 5$ の順で全部使うと、最終的に にたどり着き、原点からの距離は となります。
3
0 0
0 1
1 0
1.414213562373095048801688724209698078569671875376
である、何の意味も持たないエンジンがある可能性もあります。
1
90447 91000
128303.000000000000000000000000000000000000000000000000
個しかエンジンがない場合もあることにご注意ください。
2
96000 -72000
-72000 54000
120000.000000000000000000000000000000000000000000000000
個しかエンジンがない場合もあります。
10
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
148.660687473185055226120082139313966514489855137208