题目:
做题思路:
把两个计划日期的差值和第一个计划的干草相比较,如果日期差值大于第一个计划的干草,那么这段时间就只有干草个数的日期吃草。反之就这段时间全能吃到干草,并将这段时间剩下的干草加入下一个计划。
代码实现:
#include <iostream>
#include<string>
using namespace std;
typedef long long ll;
const int N=1e5+5;
int main(){
int n,t;
long long sum=0;
long long b[N]={0},d[N]={1};
cin>>n>>t;
for(long long i=1;i<=n;++i)
{
cin>>d[i]>>b[i];
long long a=d[i]-d[i-1];
if(a>=b[i-1])
sum+=b[i-1];
else {
sum+=a;
b[i]+=(b[i-1]-a);
}
}
if(d[n]+b[n]>t){
sum+=(t-d[n]+1);
}
else{
sum+=b[n];
}
cout<<sum;
return 0;
}