SP9642 GETFAST - Getting There Fast
题目描述
Gabriela 是一名校车司机。作为少数从事这个行业的女性之一,她常常受到男司机的嘲笑。为了提高自己的尊严,她决定不仅要负责任地开车,还要高效地行驶,以便在不违反交通规则的情况下尽可能缩短行驶时间。
她所开的校车配备了先进的驾驶系统,可以让她瞬间设定任意的加速度。因此,在一段时间内,加速度是恒定的,除非 Gabriela 决定改变它。如果某一时刻车速为 $v$,加速度为 $a$,并且保持恒定时间为 $t$,那么这段时间结束时的速度会变为 $v + at$。此外,车辆在这段时间内的行驶距离为 $\frac{at^2}{2} + vt$。
交通规则规定任何时候加速度 $a$ 必须满足 $-D \leq a \leq A$,即车辆不可加速超过 **A** 或减速小于 **D**。此外,当校车经过路线上的检查点时,其速度必须在规定的范围内。
Gabriela 事先知道检查点的位置、整条线路的长度,以及常数 **A** 和 **D**。在出发时,校车的速度和加速度均为 0。线路的终点没有对速度或加速度的限制(终点不要求停车)。你的任务是根据这些信息,计算 Gabriela 最短需要多少时间才能按照规则完成这段路线。
输入格式
输入包含多组测试用例。每组测试用例由多行构成。第一行有四个整数 **N**、**L**、**A** 和 **D**,分别表示 Gabriela 路线上的检查点数量($1 \leq N \leq 10^5$),路线长度(单位米,$2 \leq L \leq 10^7$),以及允许的最大加速度和减速度($1 \leq A, D \leq 100$)。接下来的 **N** 行中,每行提供一个检查点的信息,包含三个整数 **X**、**V** 和 **W**。这些整数分别表示检查点距离起点的距离($1 \leq X \leq L-1$),以及通过该检查点时允许的最小和最大速度($1 \leq V, W \leq 100$)。这些检查点按距离递增顺序排列,不会有两个检查点距离相同。输入结束标志为一行包含四个 -1,应当忽略这一行。
输出格式
对于每个测试用例,输出一行表示 Gabriela 在不违反交通规则下完成全程所需的最短时间(单位秒)。如果无法完成,则输出星号。结果应保留到小数点后两位并向上舍入,即使答案以 0 结束,也需显示两位小数。
说明/提示
- $1 \leq N \leq 10^5$
- $2 \leq L \leq 10^7$
- $1 \leq A, D \leq 100$
- $1 \leq X \leq L-1$
- $1 \leq V, W \leq 100$
**本翻译由 AI 自动生成**