There are N boxes arranged in a row. Initially, the i-th box from the left contains ai candies.
Snuke can perform the following operation any number of times:
Choose a box containing at least one candy, and eat one of the candies in the chosen box.
His objective is as follows:
Any two neighboring boxes contain at most x candies in total.
Find the minimum number of operations required to achieve the objective.
Constraints
2≤N≤105
0≤ai≤109
0≤x≤109
Print the minimum number of operations required to achieve the objective.
Eat one candy in the second box. Then, the number of candies in each box becomes (2,1,2).
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long int LL;
int main()
{
long long int ans = 0;
int a[100005];
int n,x;
scanf("%d %d",&n,&x);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
if(a[0]>x)
{
int t = a[0]-x;
ans+=t;
a[0]-=t;
}
for(int i=1;i<n;i++)
{
if(a[i]+a[i-1]>x)
{
int t = x-a[i-1];
ans+=a[i]-t;
a[i]-=a[i]-t;
}
}
printf("%lld",ans);
}