输入样例1:
1 5
1 2
输出样例1:
2
样例1解释
两捆干草在第 11 天早上被送到了牛棚,所以贝茜第 1,2 天有干草吃。
输入样例2:
2 5
1 2
5 10
输出样例2:
3
样例2解释
两捆干草在第 1 天早上被送到了牛棚,所以贝茜第 1,2 天有干草吃。
10 捆干草在第 5 天早上被送到了牛棚,所以贝茜第 5 天有干草吃。
输入样例3:
2 5
1 10
5 10
输出样例3:
5
10 捆干草在第 1 天早上被送到了牛棚,所以贝茜第 1∼5 天都有干草吃。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll n,t,res,k;
int main(){
scanf("%lld%lld",&n,&t);
for(int i=0;i<n;i++){
ll day,num;
scanf("%lld%lld",&day,&num);
if(day<=k){ //当前时间在可维持到的那天之前,则累加
day=k+1;
}
k=day+num-1;
res+=num; //加上这段时间
if(k>=t){ //超过了最大天数,减去差
res-=k-t;
break;
}
}
cout<<res;
return 0;
}