Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int MOD = 12345, N = 1e6+1;
  6.  
  7. vector<int> st(4*N);
  8.  
  9. int st_sum(int v, int l, int r, int tl, int tr)
  10. {
  11.     if(l > r)
  12.         return 0;
  13.     if(l == tl && r == tr)
  14.         return st[v];
  15.     int tm = (tl+tr)/2;
  16.     return st_sum(2*v, l, min(r, tm), tl, tm) + st_sum(2*v + 1, max(l, tm+1), r, tm+1, tr);
  17. }
  18.  
  19. void update(int v, int tl, int tr, int pos, int new_val)
  20. {
  21.     if(tl == tr)
  22.         st[v] = new_val;
  23.     else
  24.     {
  25.         int tm = (tl+tr)/2;
  26.         if(pos <= tm)
  27.             update(2*v, tl, tm, pos, new_val);
  28.         else
  29.             update(2*v+1, tm+1, tr, pos, new_val);
  30.         st[v] = st[2*v] + st[2*v+1];
  31.     }
  32. }
  33.  
  34. int main()
  35. {
  36. #ifdef AT_MY_PC
  37.     freopen("input.txt", "r", stdin);
  38. #endif
  39.     ios::sync_with_stdio(0);
  40.     cin.tie(nullptr);
  41.  
  42.     int n, k;
  43.     cin >> n >> k;
  44.     for(int i = 0; i < k; ++i)
  45.     {
  46.         int z;
  47.         cin >> z;
  48.         if(z == 0)
  49.         {
  50.             int a, b;
  51.             cin >> a >> b;
  52.             cout << st_sum(1, a-1, b-1, 0, n-1) << endl;
  53.         }
  54.         else
  55.             update(1, 0, n-1, z-1, 1);
  56.     }
  57.  
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement