[洛谷luogu] P3817 【小A的糖果】 题解

居然是PJ-

方法

模拟,贪心(?),边读边算,节省一个for

贪心策略

过一遍,过的时候把需要吃掉的糖吃掉,这样就可以保证吃掉的糖最小

代码

#include <iostream>
long long n, x, ans;//没开long long的我第一次得80
long long caddy[100005];//开long long
int main()
{
    std::cin >> n >> x;//读入
    for (long long i = 1; i <= n; i++)
    {
        std::cin >> caddy[i];
        if (caddy[i] + caddy[i - 1] > x)//如果需要吃糖
        {
            ans += caddy[i] + caddy[i - 1] - x;//算一下吃了多少糖
            caddy[i] -= caddy[i] + caddy[i - 1] - x;//把吃掉的糖去掉
        }
    }
    std::cout << ans;//输出答案
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/wasonliu/p/luogu-p3817.html
今日推荐