zoukankan      html  css  js  c++  java
  • P3817 小A的糖果

    题目描述

    小 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,再想起来在题解区有人加了这个判断,我就知道自己哪里出错了。
  • 相关阅读:
    selenium3 + python
    selenium3 + python
    Linux 文件查找
    Linux 重定向与管道
    MySQL —— 基本查询方法
    Linux 用户和文件权限管理
    Linux bash介绍与使用
    Linux 文件操作
    Linux 文件系统简介
    Linux 帮助命令
  • 原文地址:https://www.cnblogs.com/lau1997/p/12594631.html
Copyright © 2011-2022 走看看