在城市 I 与城市 O 之间有一辆长途客车,车上配备了一台供水机,乘客和司机均可从中取水饮用。客车于时间 从城市 I 出发,于时间 抵达城市 O。沿途共有 个补水点,客车在第 个补水点()的到达时间为 。
初始时,供水机内无水。我们可以在出发前向供水机注水;此外,当客车停靠在补水点时,也可向供水机注水。无论客车处于何处,每升水的价格均为 日元。
在城市 I,有 名乘客上车,乘客编号为 至 。除城市 I 外,其他地点无乘客上车。第 名乘客()在时间 需要一升水。若他饮水,则在经过时间 后将再次需要一升水。换言之,第 名乘客在时间 ()需要水。此处满足 ,且所有乘客的 值相同。若供水机在乘客需要水时无水,则该乘客将离开客车。若第 名乘客在抵达城市 O 前离开客车,我们需要退还其车费,退款费用为 日元。
司机同样需要饮水。若他饮水,则在经过时间 后将再次需要一升水,方式与乘客相同。换言之,司机在时间 ()需要水。若供水机在司机需要水时无水,则客车运营将停止。
不会同时有两人需要水。当客车抵达城市 O 或补水点时,乘客和司机均不需要水。
通过调整在补水点向供水机注水的水量,我们希望最小化水费与退款费用之和,并确保客车能够顺利运营至城市 O。你的任务是决定在旅途中于何处、注入多少水量至供水机。
任务
给定客车的行驶时间、补水点信息、乘客与司机的需求信息,编写一个程序,计算在客车成功抵达城市 O 的前提下,水费与退款费用之和的最小值。