Problem4773--汽车旅行(car)

4773: 汽车旅行(car)

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小明想在暑假里自己开车回家,顺带进行短途的旅行,现在他有一辆油箱容量为 $L$ 单位的汽车,他的学校在 $1$ 号点,家在 $n$ 号点。
吧起点和终点计算在内,依次会经过 $n$ 个城市。从第 $i$ 号城市到 $i + 1$ 号城市需要消耗 $W_i$ 的油量,并且不能往回开(不能从 $i + 1$ 号城市开回到 $i$ 号城市)。
但是小明是一个小机灵鬼,他发现每个城市的油价都不一样,这意味着需要有准备地规划自己应当在哪个城市加多少油。更有意思的是,他发现这 $n$ 所城市都可以进行油价的自由买卖。在城市 $i$,如果每单位邮件为 $C_i$,那么每单位的售卖油价就为 $0.95 * C_i$。当然小明不能太多于贪心,他只能吧油放在油缸里,而不能放在瓶子或者罐子里,因为那么太危险。
现在小明有 $m$ 单位的钱,请问到目的地最多还能剩下多少钱?注意途中小明不能欠钱!如果图中小明开不到终点,那么请输出 $-1$。

Input

输入一共有 $3$ 行。
第一行依次为 $n$(城市数量),$m$(初始钱数),$L$(油箱容量)。其中 $n \leq 300,\ m \leq 10^9,\ L \leq 400$。
第二行包含 $n - 1$ 个整数 $W_i\ (1 \leq W_i \leq 400)$。
第三行包含 $n$ 个整数 $C_i\ (1 \leq C_i \leq 10^9)$。

Output

输出共一行,保留两位小数,表示最后最多剩下多少钱。如果小明中途实在没有钱开回家里,则输出 $-1$。

Constraints

对于 $30\%$ 的数据, $n < 8,\ L < 8$。
对于 $70\%$ 的数据, $n < 100,\ L < 100$。

Sample 1 Input

3 100 12
5 5
9 20 10

Sample 1 Output

20.00
在 $1$ 号城市购买 $11$ 升油消费 $99$,在 $2$ 号城市卖掉 $1$ 升,盈利 $20 * 0.95 = 19$,最终开到终点 $3$ 号城市。
所以最终剩下的钱就是 $100 - 99 + 19 = 20$。

HINT

题目来源:2018 年宁波市第 33 届中小学生程序设计展示能力 T4。

Source/Category