fork(2) download
  1. #include <math.h>
  2. #include <time.h>
  3. #include <ctype.h>
  4. #include <stdio.h>
  5. #include <assert.h>
  6. #include <stdlib.h>
  7. #include <string.h>
  8. #include <map>
  9. #include <set>
  10. #include <deque>
  11. #include <queue>
  12. #include <stack>
  13. #include <bitset>
  14. #include <string>
  15. #include <vector>
  16. #include <iostream>
  17. #include <algorithm>
  18.  
  19. using namespace std;
  20. const int INF= 2147483647;
  21.  
  22. #define MAX(a,b) ((a>b)?a:b)
  23. #define MIN(a,b) ((a<b)?a:b)
  24. #define REP(i,a) for(int i=0;i<(a);i++)
  25. #define FOR(i,a,b) for(int i=(a);i<=(b);i++)
  26. #define pb(x) push_back(x)
  27. #define SORT(a,n) sort(begin(a),begin(a)+n)
  28. #define REV(a,n) reverse(begin(a),begin(a)+n)
  29. #define ll long long
  30. #define pii pair<int,int>
  31. #define MOD 1000000007
  32. #define DEBUG(x) cout<<">>>> "<<x<<endl
  33.  
  34.  
  35. int matrix[100][100];
  36. int queryType[10000];
  37. int value[10000];
  38. int main(){
  39.  
  40. //int n;
  41. //int m;
  42. //
  43. //scanf("%d %d",&n,&m);
  44. //
  45. //int T;
  46. //scanf("%d %d",&T);
  47. //
  48. int n,m,q;
  49. cin>>n>>m>>q;
  50. int idx=0;
  51. REP(i,q){
  52. int type=0;
  53. cin>>type;
  54. if(type==1 || type==2){
  55. queryType[idx]=type;
  56. cin>>value[idx];
  57. idx++;
  58. }else{
  59. int x,y;
  60. cin>>x>>y;
  61. int finalX=y-1;
  62. int finalY=x-1;
  63.  
  64. REP(j,idx){
  65. if(queryType[j]==1 && value[j]==x){
  66. finalX++;
  67. if(finalX>m-1){
  68. finalX=0;
  69. }
  70. }else if(queryType[j]==2 && value[j]==y){
  71. finalY--;
  72. if(finalY<0){
  73. finalY=n-1;
  74. }
  75. }
  76.  
  77. }
  78. //cout<<finalX<<" "<<finalY<<endl<<endl;
  79. cin>>matrix[finalY][finalX];
  80. }
  81. }
  82.  
  83. REP(i,n){REP(j,m){cout<<matrix[i][j]<<" ";}cout<<endl;}
  84.  
  85. return 0;
  86. }
  87.  
Success #stdin #stdout 0s 3576KB
stdin
2 2 6
2 1
2 2
3 1 1 1
3 2 2 2
3 1 2 8
3 2 1 8
stdout
8 2 
1 8