bzoj#P4829. [Hnoi2017]队长快跑

[Hnoi2017]队长快跑

题目描述

众所周知,在 P 国外不远处盘踞着巨龙大 Y。传说中,在远古时代,巨龙大 Y 将 P 国的镇国之宝窃走并藏在了其巢穴中,这吸引着整个 P 国的所有冒险家前去夺回,尤其是皇家卫士队的队长小 W。在 P 国量子科技实验室的帮助下,队长小 W 通过量子传输进入了巨龙大 Y 的藏宝室,并成功夺回了镇国之宝。但此时巨龙布下的攻击性防壁启动,将小 W 困在了美杜莎的迷宫当中。

被困在迷宫 (0,0)(0,0) 处的队长小 W 快速观察了美杜莎的迷宫的构造,发现迷宫的出口位于 (p,q)(p,q) 处。巨龙大 Y 在迷宫当中布置了 nn 火焰吐息机关,每个机关可以用三个参数 (x,y,θ)(x,y,\theta) 表示,分别指明机关位于平面的坐标 (x,y)(x,y),以及火焰吐息的方向相对于 xx 正方向的倾角 θ\theta。巨龙强大的力量使得火焰吐息有无穷长,且队长小 W 不能通过被火焰吐息覆盖的射线(注意,机关所处的坐标若没有被其他火焰吐息覆盖,则是可以通过的)。同时,迷宫在沿 xx 负方向无穷远的地方放置了美杜莎之眼,使得队长小 W 必须倾向于向 xx 正方向行动(即队长小 W 的移动方向在 xx 正方向上的投影必须为正,不能是负数或零),否则队长小 W 将被瞬间石化而无法逃离。

心急如焚的队长小 W 需要趁着巨龙大 Y 还没将其抓住前逃离美杜莎的迷宫,所以他立马向 P 国智囊团求助,作为智囊团团长的你,一定可以帮队长小 W 找出安全逃至迷宫出口的最短道路。

输入格式

第一行为三个整数 n,p,qn,p,q 分别表示火焰吐息机关总数以及出口坐标。

接下来 nn 行,每行两个整数与一个实数 (x,y,θ)(x,y,\theta) 分别表示机关所处的坐标以及火焰吐息的关于 xx 正方向的倾角。

输出格式

输出文件仅包含一行一个小数,表示最短道路的长度。当你的答案和标准答案的相对误差不超过 10810^{-8} 时( 即 aoa108\frac{|a-o|}{a}\leq10^{-8} 时, 其中 aa 是标准答案,oo 是输出)认为你的答案正确。

样例输入 #1

7 20 -5
4 3 -2.875
5 7 -1.314
10 -2 0.666
16 1 -1.571
16 1 1.571
23 -3 -2.130
14 -5 3.073

样例输出 #1

33.3380422500

样例输入 #2

7 20 0
5 2 1.155
5 2 1.987
5 2 -1.571
11 -4 1.765
11 -4 1.377
15 -4 1.765
15 -4 1.377

样例输出 #2

24.2735704188

说明

【样例解释】

30%30\% 的数据满足 n300n\leq 300

60%60\% 的数据满足 n2000n\leq 2000

80%80\% 的数据满足 n105n\leq 10^5

100%100\% 的数据满足: $0 \leq n,p, |q|, |x|, |y| \leq 10^6; \theta \in [−\pi, \pi]$。

数据保证至少存在一条合法路径,且起点和终点均不会被火焰路径覆盖。