Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. #define DN 200005
  7. #define LL long long
  8. using namespace std;
  9.  
  10. int q,n,nn,v[DN];
  11. vector<int> poz[DN];
  12.  
  13. void ups() {
  14. for(int i=max(nn,n); i>min(nn,n); --i)
  15. poz[v[i]].pop_back();
  16. }
  17.  
  18. int main () {
  19.  
  20. ifstream f("undo.in");
  21. ofstream g("undo.out");
  22.  
  23. int op,x,m;
  24. f>>m;
  25.  
  26. while(f>>op>>x) {
  27. if(op==1) {
  28. ups();
  29.  
  30. v[++n]=x;
  31. nn=n;
  32. poz[x].push_back(n);
  33.  
  34. }else if(op==2) {
  35. ups();
  36.  
  37. nn=n;
  38. n-=x;
  39.  
  40. }else if(op==3) n+=x;
  41. else if(op==4) {
  42. int p=upper_bound(poz[x].begin(), poz[x].end(),n)-poz[x].begin();
  43. g<<p<<'\n';
  44. }
  45. }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement