#P12863. [NERC 2020 Online] New Flat

[NERC 2020 Online] New Flat

Description

Flato 住在平面国的首都 Flatburg,他刚刚买了一套新公寓!唯一的问题是,搬家工人把他最爱的沙发搬进来了,但放错了位置。现在 Flato 想通过移动沙发来解决这个问题,但这个沙发相当长。你能帮帮 Flato 吗?

和平面国的所有公寓一样,Flato 的公寓是一个凸多边形。他最喜欢的沙发无限薄,因此我们可以用一条线段来表示它。形式化地说,我们有一个表示公寓的多边形 PP 和一条位于多边形内部的线段 ABAB 表示沙发。我们说沙发可以到达位置 CDCD,如果存在两个连续函数 ffgg[0,1][0, 1] 映射到 PP 的内部或边界,满足 f(0)=Af(0) = Af(1)=Cf(1) = Cg(0)=Bg(0) = Bg(1)=Dg(1) = D,并且对于 0x10 \leq x \leq 1f(x)g(x)=AB|f(x)g(x)| = |AB|。你的任务是找出在所有可到达的位置 CDCD 中,直线 ABABCDCD 之间夹角的最大可能值。两条直线之间的夹角定义为它们在交点处两个角中的较小值,如果两条直线平行则定义为 00

Input Format

输入的第一行包含五个整数 nnxAx_AyAy_AxBx_ByBy_B3n503 \leq n \leq 5015000xA,yA,xB,yB15000-15\,000 \leq x_A, y_A, x_B, y_B \leq 15\,000)——多边形 PP 的顶点数以及沙发两端的坐标。

接下来的 nn 行每行包含两个整数 xxyy15000x,y15000-15\,000 \leq x, y \leq 15\,000)——按逆时针顺序给出的多边形顶点坐标。

保证 AABB 都在多边形 PP 的内部或边界上,且多边形是凸的。

Output Format

输出题目描述中所要求的最大角度(以度为单位)。如果你的输出的绝对误差或相对误差不超过 10610^{-6},则视为正确。

6 2 1 -2 1
2 1
0 3
-2 1
-2 -1
0 -3
2 -1
90
4 -1 -1 1 0
1 1
-1 1
-1 -1
1 -1
36.86989764584401285674

Hint

两条直线之间的夹角始终在 0 到 90 度之间。下方展示了两个样例的示意图,其中包含了初始位置和可能的最大角度对应的最终位置之一。

翻译由 DeepSeek V3 完成