Description
小希看着天上的雪花一片一片飘下来,落在眼前的树叶上面。
但是现在的温度很高,积雪正在一点一点的融化,每秒钟将融化一个单位。
这片树叶的负重也有限,当超过负重的时候,树叶会倾倒,树叶上的积雪会立即全部掉落。
一开始这片树叶上没有积雪,开始时间为00。
小希观察了一会儿这片树叶,请告诉她每片雪花掉在树叶上的时候,树叶上有多少积雪。
Input
第一行输入两个整数N,MN,M,分别代表这段时间里落在树叶上的雪花个数和树叶负重。
随后n行每行两个整数t_i,a_iti,ai,表示时间和雪花大小,事件按升序排列,所有的时间都不相同。
1 <= N,M <= 1000001<=N,M<=100000
0 <= t_i,a_i <= 1000000000<=ti,ai<=100000000
Output
对于每次事件输出一行,表示当前树叶上的积雪。
Sample Input 1
6 5 0 2 1 1 2 2 3 5 4 5 10 5
Sample Output 1
2 2 3 0 5 5
#include<iostream>
using namespace std;
int main()
{
int i, j, k;
int N, M;
int t, a;
int t1 = 0;//前一片雪花落下的时间
int sum=0;//树叶上的雪花量
cin >> N >> M;//N:这段时间中下落的雪花数 M:树叶最大承重
for (i = 0; i < N; i++) {
cin >> t;//雪花下落的时间
sum -= (t - t1);//相较与上次下落的时间融化的量(每分钟融化一单位)
if (sum < 0)sum = 0;
cin >> a;//雪花的量
sum += a;
if (sum > M) {
sum = 0;
}
t1 = t;
cout << sum;
}
}