题目给出卡车初始载重 initialWeight、最大安全载重 maxSafeWeight,以及每个途经点对载重的变化数组 weights。
其中:
weights[i] > 0 表示在第 i 个途经点装货weights[i] < 0 表示在第 i 个途经点卸货多多需要驾驶卡车按照指定的路线运输货物,线路沿途设有多个途径点,每个途径点会对卡车的载重产生影响,有些途径点需要装载货物(增加载重),有些途径点需要卸载货物(减少载重),若卡车货物载重小于途径点需卸载货物重量,则车辆全量卸载后前往下一个途径点。卡车有初始载重 initialWeight,为了确保行车安全,卡车的载重必须始终小于等于最大载重 maxSafeWeight 进行运输。
需要你帮忙高效计算下最大的连续途径点个数,多多在这些连续途径点始终保持载重不超过安全限制。如果所有途径点都没有安全运输,则输出 −1 。
共两行:
1.第一行包含 3 个整数 initialWeight、maxWeight、N,分别表示卡车初始载重,卡车最大安全载重,途径点数量(1<=maxWeight<=10000,1<=n<=100000,0<=initialWeight<=maxWeight)
2.第二行包含 N 个整数 (weights[n]),表示途径点对卡车实际载重的影响,正数为装载,负数为卸载,对于任意一个途径点均有 −100≤weights[i]≤100
共一行,最大的连续途径点个数,使得卡车在这些连续途径点始终保持载重不超过安全限制,如果所有途径点都没有安全运输,则输出 −1 。
输入
5 9 4
3 2 -4 3
输出
2
说明
当前共有货物 4 个途径点(为更好理解,依次记为 A,B,C,D)
司机抵达途径点 A :载重 =5+3=8,未超过最大安全载重
司机抵达途径点 B:载重 =8+2=10,超过最大安全载重
司机抵达途径点 C:载重 =10−4=6,未超过最大安全载重
司机抵达途径点 D:载重 =6+3=9,未超过最大安全载重因此,最大的连续途径点个数为 2 个(C 和 D),返回 2 。
输入
5 7 3
3 1 2
输出
-1