009 - Three Point Angle(★6) Editorial /

Time Limit: 3 sec / Memory Limit: 1024 MB

配点: 6

問題文

座標平面上に相異なる N 個の点 P_1, \dots, P_N があり、点 P_i の座標は (X_i, Y_i) です。

この N 個の点から相異なる3点 P_i, P_j, P_k を選び、\angle P_i P_j P_k を最大にしたいです。この最大値を度数法で出力してください。

ただし、0^\circ \leq \angle P_i P_j P_k \leq 180^{\circ} とします。

\angle P_i P_j P_kとは
P_i \toP_j \toP_k の折れ線で構成される角の大きさのことです。

制約

  • 3 \leq N \leq 2000
  • 0 \leq X_i, Y_i \leq 10^9 (1 \leq i \leq N)
  • (X_i, Y_i) \neq (X_j, Y_j) (1 \leq i < j \leq N)
  • 入力される値は全て整数である

入力

入力は以下の形式で標準入力から与えられます。

N
X_1 Y_1
X_2 Y_2
\vdots
X_N Y_N

出力

\angle P_i P_j P_k の最大値を度数法で出力してください。 ただし、相対誤差または絶対誤差が 10^{-7} 以下であれば正解として扱われます。


入力例 1

3
0 0
0 10
10 10

出力例 1

90

P_1, P_2, P_3 の座標はそれぞれ (0, 0), (0, 10), (10, 10) です。

  • \angle P_1 P_2 P_3=90^\circ
  • \angle P_2 P_3 P_1=45^\circ
  • \angle P_3 P_1 P_2=45^\circ

であり、 \angle P_1 P_2 P_3=90^\circ が最大なので、90 と出力すればよいです。


入力例 2

5
8 6
9 1
2 0
1 0
0 1

出力例 2

171.869897645844

\angle P_2 P_3 P_4 = 171.869\cdots^\circ が最大です。


入力例 3

10
0 0
1 7
2 6
2 8
3 5
5 5
6 7
7 1
7 9
8 8

出力例 3

180

\angle P_1 P_6 P_{10}=180^\circ が最大です。


入力例 4

40
298750376 229032640
602876667 944779015
909539868 533609371
231368330 445484152
408704870 850216874
349286798 30417810
807260002 554049450
40706045 380488344
749325840 801881841
459457853 66691229
5235900 8100458
46697277 997429858
827651689 790051948
981897272 271364774
536232393 997361572
449659237 602191750
294800444 346669663
792837293 277667068
997282249 468293808
444906878 702693341
894286137 845317003
27053625 926547765
739689211 447395911
902031510 326127348
582956343 842918193
235655766 844300842
438389323 406413067
862896425 464876303
68833418 76340212
911399808 745744264
551223563 854507876
196296968 52144186
431165823 275217640
424495332 847375861
337078801 83054466
648322745 694789156
301518763 319851750
432518459 772897937
630628124 581390864
313132255 350770227

出力例 4

179.9834340684232

Source Name

「競プロ典型90問」9日目