SP10683 BYTESB - DRIVE

题目描述

黑寡妇急需赶去帮助复仇者们。尽管斯塔克借给她一辆新的奥迪,但她犯了个小错——忘记加油。她需要越过一个山丘才可以到达队伍,而油箱里的油所剩无几。因此,她必须选择最节省燃料的路线。然而,这条路上既有上坡又有下坡——每一段的坡度和长度都不同。 汽车的燃料消耗(每公里)随着速度 $v$ 的增加而线性增长,但也受到坡度 $s$ 的影响——比如说,在某条下坡路上,她可以以 8 公里/小时的速度行驶而不消耗任何燃料;反之,在同一条路上要是上坡行驶,燃料消耗率则相当于在平地上以快 8 公里/小时速度行驶时的消耗。 汽车的燃料消耗 $c$(升/公里)可通过以下公式计算: $$ c = \max(0; a \cdot v + b \cdot s) $$ 其中: - $a$ 表示平路上的燃料消耗率 - $v$ 表示速度(公里/小时) - $s$ 表示道路的坡度 - $b$ 是一个正常数 汽车加速和减速时不消耗任何燃料。此外,她还需要遵守一个安全速度限制,不能超速。她最快能多久抵达目的地?

输入格式

第一行输入一个正整数,表示测试用例的数量,最多为 100。接下来,每个测试用例包括: 一行包含四个浮点数 $a (0.1 \leq a \leq 100)$、$b (0.1 \leq b \leq 100)$、$v_{\text{max}} (10 \leq v_{\text{max}} \leq 200)$ 和 $f (0 \leq f \leq 50)$:分别表示汽车在平路上的标准燃料消耗率、坡度系数、汽车的最大速度(公里/小时)以及剩余的燃料量(升)。 一行输入一个整数 $r (1 \leq r \leq 10000)$:表示道路段的数量。 接下来输入 $r$ 行,每行包含两个浮点数 $x_i$ 和 $y_i$,分别表示第 $i$ 段道路的水平距离和高度变化(米)。每段道路的坡度为恒定值。

输出格式

对于每个测试用例,输出一行:到达目的地的最短时间(小时)。确保在可能的情况下,总是在 24 小时内完成。如果无法完成,则输出 "IMPOSSIBLE"。 要求输出的结果具有不超过 $10^{-6}$ 的相对或绝对误差。

说明/提示

- 测试用例数量:最多 100 个 - 平路上的标准燃料消耗率 $a$:$0.1 \leq a \leq 100$ - 坡度系数 $b$:$0.1 \leq b \leq 100$ - 最大速度 $v_{\text{max}}$:$10 \leq v_{\text{max}} \leq 200$ - 剩余燃料量 $f$:$0 \leq f \leq 50$ - 道路段数 $r$:$1 \leq r \leq 10000$ - 每段道路的水平距离 $x_i$:$1 \leq x_i \leq 1000$ - 每段道路的高度变化 $y_i$:$-1000 \leq y_i \leq 1000$ **本翻译由 AI 自动生成**