Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int MOD = 12345, N = 1e6+1;
- vector<int> st(4*N);
- int st_sum(int v, int l, int r, int tl, int tr)
- {
- if(l > r)
- return 0;
- if(l == tl && r == tr)
- return st[v];
- int tm = (tl+tr)/2;
- return st_sum(2*v, l, min(r, tm), tl, tm) + st_sum(2*v + 1, max(l, tm+1), r, tm+1, tr);
- }
- void update(int v, int tl, int tr, int pos, int new_val)
- {
- if(tl == tr)
- st[v] = new_val;
- else
- {
- int tm = (tl+tr)/2;
- if(pos <= tm)
- update(2*v, tl, tm, pos, new_val);
- else
- update(2*v+1, tm+1, tr, pos, new_val);
- st[v] = st[2*v] + st[2*v+1];
- }
- }
- int main()
- {
- #ifdef AT_MY_PC
- freopen("input.txt", "r", stdin);
- #endif
- ios::sync_with_stdio(0);
- cin.tie(nullptr);
- int n, k;
- cin >> n >> k;
- for(int i = 0; i < k; ++i)
- {
- int z;
- cin >> z;
- if(z == 0)
- {
- int a, b;
- cin >> a >> b;
- cout << st_sum(1, a-1, b-1, 0, n-1) << endl;
- }
- else
- update(1, 0, n-1, z-1, 1);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement