塔子哥需要在快递公司按时送达快递,为此他要有效利用运输车。每天接收的快递重量加上前一天未送达的快递重量必须在第二天送完。他可以根据运输车的最大承重来决定出车的次数,最终目标是用最少的出车次数完成所有快递的运输。通过模拟每天的快递接收和运输过程,塔子哥可以计算出所需的最小出车次数。
如果第i天正好能够装完货物,那么我们直接当天运走。但是如果当第i天有剩余,我们可以尝试将它们留到下一天运走。
这样做的好处是可能可以让本来需要运两趟的变成一趟。
小明现在在快递公司干活,现在公司有一个要求,当天下发的快递最迟明天要送到。
假设现在已经知道了接下来n天每天会下发的快递重量,小明要用快递车运输给客户,每一辆运输车最大只能装k重量的快递
每一天可以出多次车也可以不出车,不要求将车装满,当天的快递,最晚留到第二天就要送走。
小明希望出车次数最少,完成接下来n天的快递运输
输入第一行包含两个整数n(1≤n≤200000),k(1≤k≤100000000)
第二行包含n个整数a[i].(0≤a[i]≤100000000)表示第i天下发到快递中转站的快递重量
输出最少需要的出车次数。
输入
3 2
3 2 1
输出
3
解释
第一天的快递出车一次送走2个重量,留1个重量到第二天。
第二天送走第一天留下的1个重量和前的1个重量,留1个重量到第三天送走。
输入
3 2
1 0 1
输出
2
解释
第一天或者第二天出车一次送走1个重量,第三天出车一次送走1个重量。