fork download
  1. #include<iostream>
  2. #include<math.h>
  3. #include<set>
  4. using namespace std;
  5. set<int> s;
  6. int n, m, d[100010][25];
  7.  
  8. int main(){
  9. cin.tie(NULL);
  10. cout.tie(NULL);
  11. ios_base::sync_with_stdio(false);
  12. int a, b, c, i;
  13. cin>>n>>m;
  14. while(m--){
  15. cin>>a;
  16. if(a==1){
  17. cin>>b>>c;
  18. if(d[b][c]==0){
  19. d[b][c]=1;
  20. d[b][0]+=pow(2.0, c);
  21. }
  22. }
  23. if(a==2){
  24. cin>>b>>c;
  25. if(d[b][c]){
  26. d[b][c]=0;
  27. d[b][0]-=pow(2.0, c);
  28. }
  29. }
  30. if(a==3){
  31. cin>>b;
  32. if(d[b][20]) d[b][0]-=pow(2.0, 20);
  33. d[b][20]=0;
  34. for(i=19; i>=1; i--)
  35. if(d[b][i]){
  36. d[b][i]=0;
  37. d[b][i+1]=1;
  38. }
  39. d[b][0]*=2;
  40. }
  41. else{
  42. cin>>b;
  43. if(d[b][1]) d[b][0]-=2;
  44. d[b][1]=0;
  45. for(i=20; i>=2; i--)
  46. if(d[b][i]){
  47. d[b][i]=0;
  48. d[b][i-1]=1;
  49. }
  50. d[b][0]/=2;
  51. }
  52. for(i=1; i<=n; i++) cout<<d[i][0]<<" ";
  53. cout<<"\n";
  54. }
  55. cout<<s.size();
  56. }
Success #stdin #stdout 0s 5008KB
stdin
5 5
1 1 1
1 1 2
1 2 2
1 2 3
3 1
stdout
0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 
0 0 0 0 0 
0