SP10076 SLALOM2 - Slalom
题目描述
马德里虽然降雪稀少,但滑雪兴趣在增长,尤其是高山滑雪中的障碍滑雪。障碍滑雪的赛道由一系列门组成,滑雪者需要在两个杆之间通过,最快完成的人获胜。
在这个问题中,有一个关于滑雪的训练任务:编写一个程序计算从起点到终点通过所有门的最短路径,假设门水平排列,滑雪者可以进行任意转弯,目标是最小化路径长度。
输入格式
每个测试用例的第一行给出了门的数量 $n$ $(1 ≤ n ≤ 1 000)$。
下一行包含两个浮点数,即起始位置的坐标 $x,y$。
接下来 $n$ 行,每行有三个浮点数,$y,x_1,x_2$,这意味着下一个门是从 $(x_1,y)$ 到 $(x_2,y)$ 的水平线,保证 $x_1 < x_2$。$y$ 的值是严格递减的,并小于起始位置的值。最后一个门代表终点线。所有坐标都在 $− 500 000 $ 和 $500 000$ 之间(含)。
$n$ 的值为 $0$ 表示输入结束。每个测试用例后面都有一个空行。
输出格式
对于每个测试用例,输出一条到达终点线所需的最小距离的线。答案允许误差 $10^{-7}$。
说明/提示
### 输入输出样例
#### 输入 #1
```
2
0 2
1 1 2
0 0.5 3
3
0 4
3 1 2
2 -1 0
1 1 2
0
```
#### 输出 #1
```
2.41421356237
4.24264068712
```