这道贪心是按照大佬们的说法是显而易见,然而本人脑子太笨,一心想问这样为什么是贪心(或者说这样贪心为什么是正解)。
还请各位不啬赐教,可以用证明告诉我这样为什么是对的吗?(千田反爱瑠这样说道)
附上本人 AC 代码:
#include<iostream>
using namespace std;
#define size 100000
int n,x,a[size+10];
long long cnt,sum;
int main(){
cin>>n>>x;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=2;i<=n;i++){
if(a[i-1]+a[i]>x){
cnt=0;
if(a[i-1]>x)cnt+=a[i-1]-x,a[i-1]=x;
else if(a[i]>x)cnt+=a[i]-x,a[i]=x;
cnt+=a[i]+a[i-1]-x;
a[i]=x-a[i-1];
sum+=cnt;
}
}
cout<<sum<<endl;
return 0;
}