题目:AcWing 4908.饥饿的牛
贝茜是一头饥饿的牛。每天晚上,如果牛棚中还有干草的话,贝茜都会吃掉其中的一捆。
初始时,牛棚中没有干草。
为了让贝茜不被饿死,农夫约翰制定了N个给贝茜送干草的计划。
其中第 i个计划是在第 di天的白天给贝茜送去 bi捆干草。
这些计划互不冲突,保证 1≤d1<d2<…<dN≤T。
请你计算,贝茜在第 1∼T天中有多少天有干草吃。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| #include<iostream> using namespace std;
int main() { long long n,t; long long di,bi,cao=0,last=0; long long fullDay=0; cin>>n>>t; while(n--) { scanf("%lld %lld",&di,&bi); if(di-last>cao) { fullDay+=cao; cao=bi; }else{ cao-=(di-last); cao+=bi; fullDay+=di-last; } last=di; } if(cao>=(t-last+1)) fullDay+=(t-last+1); else fullDay+=cao; cout<<fullDay<<endl; return 0; }
|