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

    标程

    mmp

    一开始

    p=p-a[i+1];
    a[i+1]=0;

    写反了,所以每次p都相当于不减,,

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cmath>
     5 #include<queue>
     6 #include<algorithm>
     7 #define lli long long int 
     8 using namespace std;
     9 void read(lli &n)
    10 {
    11     char c='+';lli x=0;bool flag=0;
    12     while(c<'0'||c>'9')
    13     {c=getchar();if(c=='-')flag=1;}
    14     while(c>='0'&&c<='9')
    15     {x=x*10+(c-48);c=getchar();}
    16     flag==1?n=-x:n=x;
    17 }
    18 lli a[100001];
    19 lli n,m;
    20 lli ans=0;
    21 int main()
    22 {
    23     read(n);read(m);
    24     for(lli i=1;i<=n;i++)
    25         read(a[i]);
    26     for(lli i=1;i<=n;i++)
    27     {
    28         if(a[i]+a[i+1]>m)
    29         {
    30             lli p=a[i]+a[i+1];
    31             if(a[i+1]>=(p-m))
    32             {
    33                 a[i+1]-=(p-m);
    34                 ans+=p-m;
    35             }
    36             else 
    37             {
    38                 ans+=a[i+1];
    39                 p=p-a[i+1];
    40                 a[i+1]=0;
    41                 a[i]-=(p-m);
    42                 ans+=(p-m);
    43             }
    44         }
    45     }
    46     printf("%lld",ans);
    47     return 0;
    48 }
  • 相关阅读:
    PHP技巧通过COM使用ADODB
    PHP开发环境安装配置全攻略
    散列表
    poj Antiprime Sequences
    HDU 2011 菜鸟杯
    UVA The ? 1 ? 2 ? ... ? n = k problem
    poj 3126 Prime Path
    uva 699 The Falling Leaves
    UVA Steps
    poj 1426 Find The Multiple
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/7106072.html
Copyright © 2011-2022 走看看