Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #include <cstring>
  2. #include <iostream>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int n, m, r;
  8. int mat[100][100];
  9. int tmat[100][100];
  10.  
  11. void go1(void) {
  12. memcpy(tmat, mat, sizeof(mat));
  13. for (int i = 0; i < n; i++) {
  14. memcpy(mat[i], tmat[n - 1 - i], sizeof(mat[i]));
  15. }
  16. }
  17.  
  18. void go2(void) {
  19. memcpy(tmat, mat, sizeof(mat));
  20. for (int i = 0; i < n; i++) {
  21. for (int j = 0; j < m; j++) {
  22. mat[i][j] = tmat[i][m - 1 - j];
  23. }
  24. }
  25. }
  26.  
  27. void go3(void) {
  28. int tn = m, tm = n;
  29. memcpy(tmat, mat, sizeof(mat));
  30. for (int i = 0; i < tn; i++) {
  31. for (int j = 0; j < tm; j++) {
  32. mat[i][j] = tmat[n - 1 - j][i];
  33. }
  34. }
  35. swap(n, m);
  36. }
  37.  
  38. void go4(void) {
  39. int tn = m, tm = n;
  40. memcpy(tmat, mat, sizeof(mat));
  41. for (int i = 0; i < tn; i++) {
  42. for (int j = 0; j < tm; j++) {
  43. mat[i][j] = tmat[j][m - i - 1];
  44. }
  45. }
  46. swap(n, m);
  47. }
  48.  
  49. void go5(void) {
  50. memcpy(tmat, mat, sizeof(mat));
  51. for (int i = 0; i < n / 2; i++) {
  52. for (int j = m / 2; j < m; j++) {
  53. mat[i][j] = tmat[i][j - m / 2];
  54. }
  55. }
  56.  
  57. for (int i = n / 2; i < n; i++) {
  58. for (int j = m / 2; j < m; j++) {
  59. mat[i][j] = tmat[i - n / 2][j];
  60. }
  61. }
  62.  
  63. for (int i = n / 2; i < n; i++) {
  64. for (int j = 0; j < m / 2; j++) {
  65. mat[i][j] = tmat[i][j + m / 2];
  66. }
  67. }
  68.  
  69. for (int i = 0; i < n / 2; i++) {
  70. for (int j = 0; j < m / 2; j++) {
  71. mat[i][j] = tmat[i + n / 2][j];
  72. }
  73. }
  74. }
  75.  
  76. void go6(void) {
  77. memcpy(tmat, mat, sizeof(mat));
  78. for (int i = n / 2; i < n; i++) {
  79. for (int j = 0; j < m / 2; j++) {
  80. mat[i][j] = tmat[i - n / 2][j];
  81. }
  82. }
  83.  
  84. for (int i = 0; i < n / 2; i++) {
  85. for (int j = 0; j < m / 2; j++) {
  86. mat[i][j] = tmat[i][j + m / 2];
  87. }
  88. }
  89.  
  90. for (int i = 0; i < n / 2; i++) {
  91. for (int j = m / 2; j < m; j++) {
  92. mat[i][j] = tmat[i + n / 2][j];
  93. }
  94. }
  95.  
  96. for (int i = n / 2; i < n; i++) {
  97. for (int j = m / 2; j < m; j++) {
  98. mat[i][j] = tmat[i][j - m / 2];
  99. }
  100. }
  101. }
  102.  
  103. int main(void) {
  104. ios_base::sync_with_stdio(false);
  105. cin.tie(nullptr);
  106.  
  107. cin >> n >> m >> r;
  108. for (int i = 0; i < n; i++) {
  109. for (int j = 0; j < m; j++) {
  110. cin >> mat[i][j];
  111. }
  112. }
  113.  
  114. while (r--) {
  115. int cmd;
  116. cin >> cmd;
  117. if (cmd == 1) go1();
  118. else if (cmd == 2) go2();
  119. else if (cmd == 3) go3();
  120. else if (cmd == 4) go4();
  121. else if (cmd == 5) go5();
  122. else if (cmd == 6) go6();
  123. }
  124.  
  125. for (int i = 0; i < n; i++) {
  126. for (int j = 0; j < m; j++) {
  127. cout << mat[i][j] << ' ';
  128. }
  129. cout << '\n';
  130. }
  131.  
  132. return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement