問題
- バスが走ってるよ
- N個のバス停で、バスの中の人が$A_i$変化したよ
- バスの中の人は、最終的に何人?考えうる最小値を答えてね
成約
- $1 \leq N \leq 2 \times 10^{5}$
- $-10^{9} \leq A_i \leq 10^{9}$
思考
- 最初0人からスタートすると、途中のバス停で人数マイナスになっちゃうねぇ…
- とりあえず全バス停での変動の結果は累積和で取れるので…
- 累積和を見つつ、最小値が0未満なら、その人数下駄を履かせてあげる(=初期人数)イメージ
コード
from itertools import accumulate N = int(input()) A_L = list(map(int, input().split())) accum = list(accumulate(A_L)) print(accum[-1] - min(min(accum),0))