嗯,模擬加貪心.
考慮第i盒糖的吃糖優先級,肯定有第i盒糖大於第i-1盒糖,因爲第i盒糖剩的越少第i+1盒糖吃的越少而第i-1盒糖已經吃了不用再考慮,所以先吃第i盒糖吃完再吃第i-1盒糖。
代碼:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n,x,tmp,last;
long long ans=0;
scanf("%d%d",&n,&x);
scanf("%d",&last);
for(int i=2;i<=n;i++)
{
scanf("%d",&tmp);
int cl=tmp+last-x;
if(cl>0)
{
if(cl>tmp)
tmp=0;
else
tmp-=cl;
ans+=cl;
}
last=tmp;
}
printf("%lld",ans);
return 0;
}