zoukankan      html  css  js  c++  java
  • 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 }

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

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

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

    一切都会过去的。

  • 相关阅读:
    VS 2010 制作 Windows Service 安装包
    Postback 之后保持浏览器滚动条的位置
    Stream之list转map及问题解决
    List.sort()排序功能
    The content of element type "resultMap"
    MyBatis 一对一,一对多,多对多
    Java Array、List、Set互相转化
    Java流(Stream)操作实例-筛选、映射、查找匹配
    JAVA系列笔记十八之nohup实现后台运行程序
    VSCode汇总
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/9439542.html
Copyright © 2011-2022 走看看