#include <stdio.h> #include <bitset> #include <set> using namespace std; char tab[512][512]; int n,m; void g() { for(int j=0;j<m;j++) { int ii=0; for(int i=0;i<n;i++) { if(tab[i][j]!='.') { char tmp = tab[ii][j]; tab[ii][j] = tab[i][j]; tab[i][j] = tmp; ii++; } } } } void d() { for(int j=0;j<m;j++) { int ii=n-1; for(int i=n-1;i>=0;i--) { if(tab[i][j]!='.') { char tmp = tab[ii][j]; tab[ii][j] = tab[i][j]; tab[i][j] = tmp; ii--; } } } } void l() { for(int i=0;i<n;i++) { int jj=0; for(int j=0;j<m;j++) { if(tab[i][j]!='.') { char tmp = tab[i][jj]; tab[i][jj] = tab[i][j]; tab[i][j] = tmp; jj++; } } } } void p() { for(int i=0;i<n;i++) { int jj=m-1; for(int j=m-1;j>=0;j--) { if(tab[i][j]!='.') { char tmp = tab[i][jj]; tab[i][jj] = tab[i][j]; tab[i][j] = tmp; jj--; } } } } int main() { scanf("%d%d\n",&n,&m); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%c",tab[i]+j); } scanf("\n"); } int k; scanf("%d\n",&k); for(int i=0;i<k;i++) { char c; scanf("%c",&c); switch(c) { case 'G': g(); break; case 'D': d(); break; case 'L': l(); break; case 'P': p(); break; } } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { printf("%c",tab[i][j]); } printf("\n"); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | #include <stdio.h> #include <bitset> #include <set> using namespace std; char tab[512][512]; int n,m; void g() { for(int j=0;j<m;j++) { int ii=0; for(int i=0;i<n;i++) { if(tab[i][j]!='.') { char tmp = tab[ii][j]; tab[ii][j] = tab[i][j]; tab[i][j] = tmp; ii++; } } } } void d() { for(int j=0;j<m;j++) { int ii=n-1; for(int i=n-1;i>=0;i--) { if(tab[i][j]!='.') { char tmp = tab[ii][j]; tab[ii][j] = tab[i][j]; tab[i][j] = tmp; ii--; } } } } void l() { for(int i=0;i<n;i++) { int jj=0; for(int j=0;j<m;j++) { if(tab[i][j]!='.') { char tmp = tab[i][jj]; tab[i][jj] = tab[i][j]; tab[i][j] = tmp; jj++; } } } } void p() { for(int i=0;i<n;i++) { int jj=m-1; for(int j=m-1;j>=0;j--) { if(tab[i][j]!='.') { char tmp = tab[i][jj]; tab[i][jj] = tab[i][j]; tab[i][j] = tmp; jj--; } } } } int main() { scanf("%d%d\n",&n,&m); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%c",tab[i]+j); } scanf("\n"); } int k; scanf("%d\n",&k); for(int i=0;i<k;i++) { char c; scanf("%c",&c); switch(c) { case 'G': g(); break; case 'D': d(); break; case 'L': l(); break; case 'P': p(); break; } } for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { printf("%c",tab[i][j]); } printf("\n"); } return 0; } |