luogu P3817 小A的糖果

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

#include <cstdio>

long long n,a[100010],x,ans,yy;

int main()
{
    scanf("%lld%lld",&n,&x);

    for (int i=1; i<=n; i++)
    {
        scanf("%lld",&a[i]);
        if (a[i]+a[i-1]>x)
            yy=a[i]+a[i-1]-x,
            a[i]-=yy,
            ans+=yy;
    }

    printf("%lld",ans);
    return 0;
}
时间: 2024-10-13 15:11:05

luogu P3817 小A的糖果的相关文章

P3817 小A的糖果(洛谷月赛)

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

洛谷 P3817 小A的糖果

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: 复制

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 说明

AC日记——小A的糖果 洛谷七月月赛

小A的糖果 思路: for循环贪心: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #define ll long long ll ai[maxn],n,m,ans; inline void in(ll &now) { char Cget=getchar();now=0; while(Cget>'9'||Cget<'0')Cget=getchar(); while(Cget>

【BZOJ-4548&amp;3658】小奇的糖果&amp;Jabberwocky 双向链表 + 树状数组

4548: 小奇的糖果 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 103  Solved: 47[Submit][Status][Discuss] Description 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾 起多少糖果,使得获得的糖果并不包含所有的颜色. Input 包含多组测试数据,第一行输入一个正整数 T 表示测试数据组数. 接下来 T 组测试数据,对于每组测试数据,第

luogu P1120 小木棍 [数据加强版]

二次联通门 : luogu P1120 小木棍 [数据加强版] /* luogu P1120 小木棍 [数据加强版] 暴搜 + 剪枝 枚举可能的长度 挨个检查答案 二分显然正确性不能保障 搜索时从最大的开始找 放上当前木棍后的长度比枚举的长度要大, 则退出 若当前的长度与当前扫到的木棍长度相同, 或是还需要的长度与枚举的长度相同,则退出 若当前的木棍不符合要求, 则后面与它长度相同的木棍都不行 */ #include <algorithm> #include <iostream>

【BZOJ4548】小奇的糖果 set(链表)+树状数组

[BZOJ4548]小奇的糖果 Description 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的颜色. Input 包含多组测试数据,第一行输入一个正整数 T 表示测试数据组数. 接下来 T 组测试数据,对于每组测试数据,第一行输入两个正整数 N.K,分别表示点数和颜色数. 接下来 N 行,每行描述一个点,前两个数 x, y (|x|, |y| ≤ 2^30 - 1) 描述点的位置,最后一个数

[BZOJ4548]小奇的糖果

[BZOJ4548]小奇的糖果 试题描述 有 \(N\) 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的颜色. 输入 包含多组测试数据,第一行输入一个正整数 \(T\) 表示测试数据组数. 接下来 \(T\) 组测试数据,对于每组测试数据,第一行输入两个正整数 \(N\).\(K\),分别表示点数和颜色数. 接下来 \(N\) 行,每行描述一个点,前两个数 \(x, y (|x|, |y| \le 2^{3

luogu P3818 小A和uim之大逃离 II

题目背景 话说上回……还是参见 https://www.luogu.org/problem/show?pid=1373 吧 小a和uim再次来到雨林中探险.突然一阵南风吹来,一片乌云从南部天边急涌过来,还伴着一道道闪电,一阵阵雷声.刹那间,狂风大作,乌云布满了天空,紧接着豆大的雨点从天空中打落下来,只见前方出现了一个牛头马面的怪物,低沉着声音说:“呵呵,既然你们来到这,两个都别活了!”.小a和他的小伙伴再次惊呆了! 题目描述 瞬间,地面上出现了一个H行W列的巨幅矩阵,矩阵的每个格子上要么是空地‘