fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6. int mat[51][51];
  7. int aux[51][51];
  8. int num_l, num_c;
  9. cin >> num_l >> num_c;
  10. int i = 1;
  11. int j = 1;
  12. for( i = 1; i <= num_l; ++i){
  13. for(j = 1; j <= num_c; ++j){
  14. cin >> mat[i][j];
  15. }
  16. }
  17. int l_start, c_start, l_finish = 0,c_finish = 0,num_move;
  18. cin >> l_start;
  19. cin >> c_start;
  20. cin >> num_move;
  21. l_finish = l_start + num_move - 1;
  22. c_finish = c_start + num_move - 1;
  23. for( i = 1; i <= num_l; ++i){
  24. for(j = 1; j <= num_c; ++j){
  25. if(i >= l_start && i <= l_finish && j >= c_start && j <= c_finish){
  26. if(l_start < c_start){
  27. aux[i][j] = mat [j -(c_start - l_start)][num_l - i + 1];
  28. }
  29. if(l_start > c_start){
  30. aux[i][j] = mat [j +(l_start - c_start)][num_l - i + 1];
  31. }
  32. if(l_start == c_start){
  33. aux[i][j] = mat [j][num_l - i + 1];
  34. }
  35. }
  36. }
  37. }
  38. for( i = 1; i <= num_l; ++i){
  39. for(j = 1; j <= num_c; ++j){
  40. if(i >= l_start && i <=l_finish && j >= c_start && j <= c_finish){
  41. mat[i][j] = aux[i][j];
  42. }
  43. cout << mat[i][j]<<" ";
  44. }
  45. cout << "\n";
  46. }
  47. return 0;
  48. }
Success #stdin #stdout 0s 5536KB
stdin
4 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
2 1 2
stdout
1 2 3 4 
7 11 7 8 
6 10 11 12 
13 14 15 16