FEgor04

Untitled

Sep 9th, 2019
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.98 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define DEBUG
  3. using namespace std;
  4.  
  5. vector<long long> t;
  6. int n;
  7.  
  8. void init (int nn)
  9. {
  10.     n = nn;
  11.     t.assign (n, 0);
  12. }
  13.  
  14. long long sum (int r)
  15. {
  16.     long long result = 0;
  17.     for (; r >= 0; r = (r & (r+1)) - 1)
  18.         result += t[r];
  19.     return result;
  20. }
  21.  
  22. void inc (int i, long long delta)
  23. {
  24.     for (; i < n; i = (i | (i+1)))
  25.         t[i] += delta;
  26. }
  27.  
  28. long long sum (int l, int r)
  29. {
  30.     return sum (r) - sum (l-1);
  31. }
  32.  
  33. void init (vector<long long> a)
  34. {
  35.     init ((int) a.size());
  36.     for (int i = 0; i < a.size(); i++)
  37.         inc (i, a[i]);
  38. }
  39.  
  40. int main() {
  41.     ios_base::sync_with_stdio(0);
  42.     cin.tie(NULL);
  43.     freopen("rsq2.in", "r", stdin);
  44.     freopen("rsq2.out", "w", stdout);
  45.     long long n, m;
  46.     cin >> n >> m;
  47.     vector<long long> a(int(1e6), 0);
  48.     for(int i = 1; i <= n; i++) {
  49.         cin >> a[i];
  50.     }
  51.     init(a);
  52.     int l, r, t;
  53.     for(int i = 0; i < m; i++) {
  54.         cin >> t >> l >> r;
  55.         if(t == 1) {
  56.             inc(l, r);
  57.         }
  58.         else {
  59.             cout << sum(l, r) << "\n";
  60.         }
  61.     }
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment