累積和に関する問題!!
問題概要
日間にわたるイベントを開催し、日
には
人が来場した。次の
回のクエリに答えよ。
【クエリ】
各クエリでは が与えられるので、
日目から
日目までの間に合計何人が来場したかを答えよ。
制約
解法
累積和を活用します! 累積和については、次の記事に詳しく書きました。
この問題と本質的に同じ問題についても解説しています。
コード
#include <bits/stdc++.h> using namespace std; int main() { int N, Q; cin >> N >> Q; // 配列 A の入力を受け取りながら、累積和も求める vector<int> A(N), S(N + 1, 0); for (int i = 0; i < N; ++i) { cin >> A[i]; S[i + 1] = S[i] + A[i]; } // クエリに答える for (int iter = 0; iter < Q; ++iter) { int L, R; cin >> L >> R; --L; cout << S[R] - S[L] << endl; } }