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;
}