Advertisement
PikMike

Untitled

Apr 24th, 2016
338
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. // main.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdio.h";
  5. //#include "stdafx.h";
  6. #include <vector>;
  7.  
  8.  
  9. #define pb push_back
  10. #define pf push_front
  11. #define mp make_pair
  12. #define sz size
  13. #define ll long long
  14. #define ld long double
  15. #define fs first
  16. #define sc second
  17. #define forn(i, f, t) for(int i = f; i < t; i++)
  18. #define all(x) (x).begin(), (x).end()
  19. #define ins insert
  20.  
  21. const int INF = 2147483647;
  22. const int MOD = 1000000007;
  23. const ll INF64 = 9223372036854775807;
  24. const ld EPS = 1e-7;
  25.  
  26. using namespace std;
  27.  
  28.  
  29. int main()
  30. {
  31.     int n, m, q, x, y, val, pos, t;
  32.     scanf("%d%d%d", &n, &m, &q);
  33.     swap(n, m);
  34.     vector<pair<pair<int, int>, pair<int, int> > > qs;
  35.     vector<int> qt;
  36.     forn(i, 0, q){
  37.         scanf("%d", &t);
  38.         x = -1, y = -1, pos = -1, val = -1;
  39.         if (t <= 2) scanf("%d", &pos);
  40.         else scanf("%d%d%d", &y, &x, &val);
  41.         qt.pb(t);
  42.         qs.pb(mp(mp(x - 1, y - 1),mp(val, pos - 1)));
  43.     }
  44.     // reverse(all(qs));
  45.     // reverse(all(qt));
  46.     int ans[101][101];
  47.     int str[101];
  48.     forn(i, 0, n) forn(j, 0, m) ans[i][j] = 0;
  49.     forn(i, 0, q){
  50.         if (qt[i] == 2){
  51.             t = ans[0][qs[i].sc.sc];
  52.             forn(j, 0, n - 1) ans[j][qs[i].sc.sc] = ans[j + 1][qs[i].sc.sc];
  53.             ans[n - 1][qs[i].sc.sc] = t;
  54.         }
  55.         else if (qt[i] == 1){
  56.             t = ans[qs[i].sc.sc][0];
  57.             forn(j, 0, m - 1) ans[qs[i].sc.sc][j] = ans[qs[i].sc.sc][j + 1];
  58.             ans[qs[i].sc.sc][m - 1] = t;
  59.         }
  60.         else
  61.             ans[qs[i].fs.sc][qs[i].fs.fs] = qs[i].sc.fs;
  62.     }
  63.     reverse(all(qs));
  64.     reverse(all(qt));
  65.     //forn(i, 0, n){
  66.     //  forn(j, 0, m)
  67.     //      printf("%d ", ans[i][j]);
  68.     //  printf("\n");
  69.     //}
  70.     forn(i, 0, q)
  71.         if (qt[i] == 2){
  72.             t = ans[n - 1][qs[i].sc.sc];
  73.             for (int j = n - 1; j > 0; j--) ans[j][qs[i].sc.sc] = ans[j - 1][qs[i].sc.sc];
  74.             ans[0][qs[i].sc.sc] = t;
  75.         }
  76.         else if (qt[i] == 1){
  77.             t = ans[qs[i].sc.sc][m - 1];
  78.             for (int j = m - 1; j > 0; j--) ans[qs[i].sc.sc][j] = ans[qs[i].sc.sc][j - 1];
  79.             ans[qs[i].sc.sc][0] = t;
  80.         }
  81.     forn(i, 0, n){
  82.         forn(j, 0, m)
  83.             printf("%d ", ans[i][j]);
  84.         printf("\n");
  85.     }
  86.     //system("pause");
  87.     return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement