#include <bits/stdc++.h> using namespace std; typedef long long LL; string s[505]; string g; int n, m; void solve(char c){ vector<char> v; if(c == 'G'){ for(int j=0; j<m; j++){ for(int i=0; i<n; i++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; for(; k<v.size(); k++){ s[k][j] = v[k]; } for(; k<n; k++){ s[k][j] = '.'; } v.clear(); } } if(c == 'D'){ for(int j=0; j<m; j++){ for(int i=0; i<n; i++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; reverse(v.begin(), v.end()); for(; k<v.size(); k++){ s[n-k-1][j] = v[k]; } for(; k<n; k++){ s[n-k-1][j] = '.'; } v.clear(); } } if(c == 'P'){ for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; reverse(v.begin(), v.end()); for(; k<v.size(); k++){ s[i][m-k-1] = v[k]; } for(; k<m; k++){ s[i][m-k-1] = '.'; } v.clear(); } } if(c == 'L'){ for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; for(; k<v.size(); k++){ s[i][k] = v[k]; } for(; k<m; k++){ s[i][k] = '.'; } v.clear(); } } } int main(){ ios_base::sync_with_stdio(false); cin>>n>>m; for(int i=0; i<n; i++){ cin>>s[i]; } int K; cin>>K; cin>>g; //solve(g[0]); char pion = '.', poziom = '.'; for(unsigned i=0; i<g.size(); i++){ solve(g[i]); } //solve(pion); //solve(poziom); for(int i=0; i<n; i++){ cout<<s[i]<<"\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 | #include <bits/stdc++.h> using namespace std; typedef long long LL; string s[505]; string g; int n, m; void solve(char c){ vector<char> v; if(c == 'G'){ for(int j=0; j<m; j++){ for(int i=0; i<n; i++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; for(; k<v.size(); k++){ s[k][j] = v[k]; } for(; k<n; k++){ s[k][j] = '.'; } v.clear(); } } if(c == 'D'){ for(int j=0; j<m; j++){ for(int i=0; i<n; i++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; reverse(v.begin(), v.end()); for(; k<v.size(); k++){ s[n-k-1][j] = v[k]; } for(; k<n; k++){ s[n-k-1][j] = '.'; } v.clear(); } } if(c == 'P'){ for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; reverse(v.begin(), v.end()); for(; k<v.size(); k++){ s[i][m-k-1] = v[k]; } for(; k<m; k++){ s[i][m-k-1] = '.'; } v.clear(); } } if(c == 'L'){ for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ if(s[i][j]=='B' || s[i][j]=='C')v.push_back(s[i][j]); } int k=0; for(; k<v.size(); k++){ s[i][k] = v[k]; } for(; k<m; k++){ s[i][k] = '.'; } v.clear(); } } } int main(){ ios_base::sync_with_stdio(false); cin>>n>>m; for(int i=0; i<n; i++){ cin>>s[i]; } int K; cin>>K; cin>>g; //solve(g[0]); char pion = '.', poziom = '.'; for(unsigned i=0; i<g.size(); i++){ solve(g[i]); } //solve(pion); //solve(poziom); for(int i=0; i<n; i++){ cout<<s[i]<<"\n"; } return 0; } |