💬
競プロ備忘録:累積和の基本
間違えやすいポイント
各配列が0から始まるのか1から始まるのかがバラバラなことが間違えやすい原因となっています。
リストの定義を行う際は、必ず書くインデックスが何を表しているのかについてコメントを残しておきましょう。
完成
コメントの書き方などの例です。問題は以下リンクです。
# 入力
N, Q = map(int, input().split())
A = list(map(int, input().split()))
L, R = [None] * Q, [None] * Q
for i in range(Q):
L[i], R[i] = map(int, input().split())
# 来場者数の累積和を求める
S = [0] * (N+1) # 0日目, 1日目, ..., N日目の累積和
for i in range(1, N+1):
S[i] = S[i-1] + A[i-1]
for i in range(Q):
Answer = S[R[i]] - S[L[i]-1]
print(Answer)
Discussion