赞
踩
学习C++从娃娃抓起!记录下洛谷C++学习和备考过程中的题目,记录每一个瞬间。
附上汇总贴:洛谷刷题C++语言 | 汇总_热爱编程的通信人的博客-CSDN博客
【题目描述】
小 A 有 n 个糖果盒,第 i 个盒中有 ai 颗糖果。
小 A 每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个数之和都不大于 x,至少得吃掉几颗糖。
【输入】
输入的第一行是两个用空格隔开的整数,代表糖果盒的个数 n 和给定的参数 x。
第二行有 n 个用空格隔开的整数,第 i 个整数代表第 i 盒糖的糖果个数 ai。
【输出】
输出一行一个整数,代表最少要吃掉的糖果的数量。
【输入样例】
- 3 3
- 2 2 2
【输出样例】
1
【代码详解】
- #include <bits/stdc++.h>
- using namespace std;
- int n, x, l, r;
- long long a[100005]={0}, ans=0;
- int main()
- {
- cin >> n >> x;
- cin >> l;
- if (l>x) {
- ans += l-x;
- l = x;
- }
- for (int i=2; i<=n; i++) {
- cin >> r;
- if (l>x) {
- ans += l-x;
- l = x;
- }
- if (l+r>x) {
- ans += (l+r-x);
- r = r - (l+r-x);
- }
- l = r;
- }
- cout << ans;
- return 0;
- }
【运行结果】
- 3 3
- 2 2 2
- 1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。