This documentation is automatically generated by competitive-verifier/competitive-verifier
#define PROBLEM "https://judge.yosupo.jp/problem/static_range_sum"
#include <bits/stdc++.h>
using namespace std;
#include "../../../dp/CumulativeSum.hpp"
int main() {
cin.tie(0)->sync_with_stdio(0);
int n, q;
cin >> n >> q;
vector<long long> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
CumulativeSum s(a);
for (int i = 0; i < q; i++) {
int l, r;
cin >> l >> r;
cout << s.sum(l, r) << "\n";
}
}
#line 1 "verify/LibraryChecker/dp/StaticRangeSum.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/static_range_sum"
#include <bits/stdc++.h>
using namespace std;
#line 2 "dp/CumulativeSum.hpp"
template <class T>
class CumulativeSum {
private:
int siz;
vector<T> s;
public:
CumulativeSum() {}
CumulativeSum(vector<T> &a) {
siz = a.size();
s.resize(siz + 1, 0);
for (int i = 0; i < siz; i++) {
s[i + 1] = s[i] + a[i];
}
}
T sum(int r) {
return s[r];
}
T sum(int l, int r) {
return s[r] - s[l];
}
};
#line 5 "verify/LibraryChecker/dp/StaticRangeSum.test.cpp"
int main() {
cin.tie(0)->sync_with_stdio(0);
int n, q;
cin >> n >> q;
vector<long long> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
CumulativeSum s(a);
for (int i = 0; i < q; i++) {
int l, r;
cin >> l >> r;
cout << s.sum(l, r) << "\n";
}
}