P3817 小A的糖果

题目描述

小A有N个糖果盒,第i个盒中有a[i]颗糖果。

小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖。

输入输出格式

输入格式:

 

第一行输入N和x。

第二行N个整数,为a[i]。

 

输出格式:

 

至少要吃掉的糖果数量。

 

输入输出样例

输入样例#1: 复制
3 3
2 2 2
输出样例#1: 复制
1

输入样例#2: 复制
6 1
1 6 1 2 0 4
输出样例#2: 复制
11
输入样例#3: 复制
5 9
3 1 4 1 5
输出样例#3: 复制
0

说明

样例解释1

吃掉第二盒中的糖果。

样例解释2

第二盒吃掉6颗,第四盒吃掉2颗,第六盒吃掉3颗。

30%的测试数据,2<=N<=20,0<=a[i], x<=100

70%的测试数据,2<=N<=1000,0<=a[i], x<=10^5

100%的测试数据,2<=N<=10^5,0<=a[i], x<=10^9

 

╮(╯▽╰)╭哎,

有家不能回的感觉真痛苦,

妈~我真的想你了~~~

 

此题直接模拟即可。

注意开long long。

 

代码:

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5 #include<cstring>
 6 using namespace std;
 7 
 8 long long n,x,t,s;
 9 int a[100002];
10 
11 int main()
12 {
13     scanf("%d%d",&n,&x);
14     for(int i=1;i<=n;++i)
15         scanf("%d",&a[i]);
16     for(int i=1;i<n;++i)
17     {
18         t=a[i]+a[i+1]; 
19         if(t>x)        
20         {
21             a[i+1]-=t-x;
22             s+=t-x;
23         }            
24     }
25     printf("%lld",s);
26     return 0;
27 }

 


 

如果你不开心,那我就把右边这个帅傻子分享给你吧, 

你看,他这么好看,那么深情的望着你,你还伤心吗? 

真的!这照片盯上他五秒钟就想笑了。 

一切都会过去的。

posted @ 2018-08-07 21:21  孟东行#  阅读(165)  评论(0编辑  收藏  举报