居然是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;
}