188AC - ABC048C: Boxes and Candies
ABC048-C (300 points)
問題
それぞれ 個のキャンディが入った箱が 個並んでいる.
箱に入っているキャンディを食べて, どの隣り合う箱を見ても, それらの箱に入っているキャンディの個数の和が 以下になるようにするとき, 食べなければならない最小個数を求める.
方針
素直に端から順番に条件を満たすように食べていきましょう.
# input N, x = map(int, input().split()) a = list(map(int, input().split())) ans = 0 for i in range(N - 1): if a[i] > x: ans += a[i] - x a[i] = x if a[i] + a[i + 1] > x: ans += a[i] + a[i + 1] - x a[i + 1] -= a[i] + a[i + 1] - x print(ans)