码迷,mamicode.com
首页 > 其他好文 > 详细

P3817 小A的糖果

时间:2020-03-29 21:11:15      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:出错   cout   pac   空格   参数   cin   输入格式   long   描述   

题目描述

小 A 有 nn 个糖果盒,第 ii 个盒中有 a_iai? 颗糖果。

小 A 每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个数之和都不大于 xx,至少得吃掉几颗糖。

输入格式

输入的第一行是两个用空格隔开的整数,代表糖果盒的个数 nn 和给定的参数 xx。

第二行有 nn 个用空格隔开的整数,第 ii 个整数代表第 ii 盒糖的糖果个数 a_iai?

输出格式

输出一行一个整数,代表最少要吃掉的糖果的数量。

 

#include<bits/stdc++.h>
using namespace std;
int n,x,a[100001];
long long b=0;
int main(){
    cin>>n>>x;
    int i;
        for( i=1;i<=n;i++) 
    {
        cin>>a[i];
    }

    for(i=2;i<=n;i++) 
    {
        if(a[i]+a[i-1]>x)
        {
            b+=max(a[i]+a[i-1]-x,0);
        a[i]=max(x-a[i-1],0);
        }
        
    }

    cout<<b;
}

注:

if(a[i]+a[i-1]>x) 这个判断一开始我没想起来加,后来调试的时候发现不加这个判断,会导致在相邻之和小于x的时候,会补糖果补到x,再想起来在题解区有人加了这个判断,我就知道自己哪里出错了。

P3817 小A的糖果

标签:出错   cout   pac   空格   参数   cin   输入格式   long   描述   

原文地址:https://www.cnblogs.com/lau1997/p/12594631.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!