6485: Boxes and Candies
时间限制: 1 Sec 内存限制: 128 MB提交: 315 解决: 114
[ 提交][ 状态][ 讨论版][命题人: admin]
题目描述
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
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
输入
The input is given from Standard Input in the following format:
N x
a1 a2 … aN
N x
a1 a2 … aN
输出
Print the minimum number of operations required to achieve the objective.
样例输入
3 3
2 2 2
样例输出
1
提示
Eat one candy in the second box. Then, the number of candies in each box becomes (2,1,2).
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int main()
{
long long n, x, a[100005];
scanf("%lld%lld", &n, &x);
for(int i=0;i<n;i++)
scanf("%lld", &a[i]);
long long ans=0, temp=0;
for(int i=0;i<n;i++)
{
if(temp+a[i]<=x)
temp=a[i];
else
{
ans+=a[i]+temp-x;
temp=a[i]-(a[i]+temp-x);
}
}
printf("%lld\n", ans);
return 0;
}
/**************************************************************
Problem: 6485
User: ldu_reserver201701
Language: C++
Result: 正确
Time:28 ms
Memory:1752 kb
****************************************************************/