Advertisement
Guest User

Untitled

a guest
Apr 6th, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.83 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define endl '\n'
  3.  
  4. #include <bits/stdc++.h>
  5. #include <ext/pb_ds/tree_policy.hpp>
  6. #include <ext/pb_ds/assoc_container.hpp>
  7. using namespace __gnu_pbds;
  8. using namespace std;
  9. typedef tree<int, null_type, less<int>, rb_tree_tag,
  10.     tree_order_statistics_node_update> OrderedSet;
  11.  
  12. OrderedSet st[100010];
  13. int v[100010];
  14.  
  15. int main() {
  16.     ios_base::sync_with_stdio(false); cin.tie(NULL);
  17.     int n, q;
  18.     cin >> n >> q;
  19.    
  20.     for(int i=1; i<=n; i++){
  21.         cin >> v[i];
  22.         st[v[i]].insert(i);
  23.     }
  24.     while(q--){
  25.         int op;
  26.         cin >> op;
  27.         if(op == 1){
  28.             int x, w;
  29.             cin >> x >> w;
  30.             st[v[x]].erase(x);
  31.             v[x] = w;
  32.             st[v[x]].insert(x);
  33.         }else{
  34.             int x, y, w;
  35.             cin >> x >> y >> w;
  36.             int a = st[w].order_of_key(x);
  37.             int b = st[w].order_of_key(y+1);
  38.             cout << (y-x+1)-(b-a) << endl;
  39.         }
  40.     }
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement