Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define DEBUG
- using namespace std;
- vector<long long> t;
- int n;
- void init (int nn)
- {
- n = nn;
- t.assign (n, 0);
- }
- long long sum (int r)
- {
- long long result = 0;
- for (; r >= 0; r = (r & (r+1)) - 1)
- result += t[r];
- return result;
- }
- void inc (int i, long long delta)
- {
- for (; i < n; i = (i | (i+1)))
- t[i] += delta;
- }
- long long sum (int l, int r)
- {
- return sum (r) - sum (l-1);
- }
- void init (vector<int> a)
- {
- init ((int) a.size());
- for (unsigned i = 0; i < a.size(); i++)
- inc (i, a[i]);
- }
- int main() {
- ios_base::sync_with_stdio(0);
- cin.tie(NULL);
- freopen("rsq.in", "r", stdin);
- freopen("rsq.out", "w", stdout);
- long long n, m;
- cin >> n >> m;
- vector<int> a(int(1e6), 0);
- for(int i = 1; i <= n; i++) {
- cin >> a[i];
- }
- init(a);
- int l, r;
- for(int i = 0; i < m; i++) {
- cin >> l >> r;
- cout << sum(l, r) << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment