题解 P3817 【小A的糖果】

· · 题解

作为洛谷 7 月月赛的第一题,是一道很水的模拟题(抢沙发啊)

上代码 2333:

#include <iostream>
using namespace std;
long long n , x , ans , p , t;//n和x的意思见原题,ans是最终答案,用来计吃掉了几颗糖,p表示前一个盒子,t表示当前的盒子。
int main()
{
    ios::sync_with_stdio(0);//关闭同步流加快速度,c++党必学。
    cin >> n >> x >> p;//输入,注意多输入一个p。
    for ( int i = 1 ; i < n ; i++ )//判断 n-1 个盒子,用 for 循环。
    {
        cin >> t;//输入当前盒子的糖果数,
        if ( t + p > x )//如果不满足要求(两盒糖果总和比x多)
        ans += t + p - x , t = x - p;//就让小A吃掉相应的糖果数,刚好等于x,ans也加上。
        p = t;//现在的盒子有变成了前一个盒子,把t赋值给p。
                //友情提示,不要用while循环一个一个减,后面几个点会超时哦~!
    }
    cout << ans;//输出答案。
    return 0;//养成好习惯,返回0
}

码字不易,希望此题解对大家有帮助!