裸贪心80分求助
查看原帖
裸贪心80分求助
577683
Neil_Seniorious楼主2023/3/27 18:03

https://www.luogu.com.cn/problem/P3817

#include<bits/stdc++.h>
using namespace std;

inline int read(){
	short f=1;int x=0;char c=getchar();
	while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
	while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
	return x*f;
}
inline void readch(char *str){
	int lenn=0;
	char c=getchar();
	while(c==' '||c=='\n'||c=='\r'){
		c=getchar();
	}
	while(c>='A'&&c<='Z'||c>='a'&&c<='z'||c>='0'&&c<='9'){
		str[lenn++]=c;
		c=getchar();
		if(c==' '||c=='\n'||c=='\r') break;
	}
}
int max(int a,int b){return a>b?a:b;}
int min(int a,int b){return a<b?a:b;}
int swap(int &a,int &b){int c=a;a=b;b=c;}

int n,k,ans;
int a[100030];

int main(){
	n=read(),k=read();
	for(int i=1;i<=n;i++){
		a[i]=read();
	}
	for(int i=2;i<=n;i++){
		if(a[i]+a[i-1]>k){
			ans=ans+a[i]+a[i-1]-k;
			if(k>a[i-1]) a[i]=k-a[i-1];
			else{
				a[i-1]=k-a[i];
				a[i]=0;
			}
		}
	}
	return printf("%d",ans),0;
}

2023/3/27 18:03
加载中...