fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(){
  5. int N,Q;
  6. cin >> N >> Q;
  7. vector<int>cnt(N,1);
  8. set<pair<int,int>>s;
  9. for(int i=0;i<N;i++)s.insert({i,i});
  10. s.insert({-1,2e9});
  11. s.insert({N,2e9});
  12.  
  13. while(Q--){
  14. int t;
  15. cin >> t;
  16. if(t==1){
  17. int x,c;
  18. cin >> x >> c;
  19. x--,c--;
  20. auto it=s.lower_bound({x,2e9});
  21. auto[R,Rc]=*it;
  22. auto[L,Mc]=*--it;
  23. auto[_,Lc]=*--it;
  24. cnt[Mc]-=R-L;
  25. cnt[c]+=R-L;
  26. it++;
  27. it=s.erase(it);//[R,Rc]
  28. if(c==Rc){
  29. it=s.erase(it);
  30. }
  31. if(c==Lc){
  32. //pass
  33. }else{
  34. s.insert({L,c});
  35. }
  36. }else{
  37. int c;
  38. cin >> c;
  39. c--;
  40. cout << cnt[c] << endl;
  41. }
  42. }
  43. }
  44.  
Success #stdin #stdout 0s 5264KB
stdin
5
6
1 2 5
2 1
2 2
2 3 
2 4
2 5
stdout
1
0
1
1
2