#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; } |
English