#include <bits/stdc++.h>
using namespace std;
int n, m, k;
vector<vector<int> > zabawka;
void przeczytaj() {
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(zabawka[i][j]==0) {
cout << '.';
}
if(zabawka[i][j]==1) {
cout << 'B';
}
if(zabawka[i][j]==2) {
cout << 'C';
}
}
cout << "\n";
}
cout << "\n";
}
void przesun(int jak) {
if(jak==1) {
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(zabawka[i][j]!=0) {
int y = i;
int v = zabawka[i][j];
zabawka[i][j] = 0;
while(zabawka[y][j]==0&&y>=0) {
y--;
if(y<0) {
break;
}
}
zabawka[y+1][j] = v;
}
}
}
}
if(jak==2) {
for(int i=n-1; i>=0; i--) {
for(int j=0; j<m; j++) {
if(zabawka[i][j]!=0) {
int y = i;
int v = zabawka[i][j];
zabawka[i][j] = 0;
while(zabawka[y][j]==0&&y<=n) {
y++;
if(y>=n) {
break;
}
}
zabawka[y-1][j] = v;
}
}
}
}
if(jak==3) {
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
if(zabawka[i][j]!=0) {
int x = j;
int v = zabawka[i][j];
zabawka[i][j] = 0;
while(zabawka[i][x]==0&&x>=0) {
x--;
if(x<0) {
break;
}
}
zabawka[i][x+1] = v;
}
}
}
}
if(jak==4) {
for(int i=0; i<n; i++) {
for(int j=m; j>=0; j--) {
if(zabawka[i][j]!=0) {
int x = j;
int v = zabawka[i][j];
zabawka[i][j] = 0;
while(zabawka[i][x]==0&&x<=m) {
x++;
if(x>=m) {
break;
}
}
zabawka[i][x-1] = v;
}
}
}
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
zabawka.resize(n+1, vector<int>(m+1, 0));
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
char z;
cin >> z;
if(z=='B') {
zabawka[i][j] = 1;
}
if(z=='C') {
zabawka[i][j] = 2;
}
}
}
cin >> k;
vector<vector<int> > g, d, l, p;
string x = "";
for(int i=0; i<k; i++) {
char z;
cin >> z;
if(x.size()!=0) {
if(x[x.size()-1]==z) {
continue;
}
}
x += z;
if(z=='G') {
przesun(1);
}
if(z=='D') {
przesun(2);
}
if(z=='L') {
przesun(3);
}
if(z=='P') {
przesun(4);
}
}
przeczytaj();
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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | #include <bits/stdc++.h> using namespace std; int n, m, k; vector<vector<int> > zabawka; void przeczytaj() { for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { if(zabawka[i][j]==0) { cout << '.'; } if(zabawka[i][j]==1) { cout << 'B'; } if(zabawka[i][j]==2) { cout << 'C'; } } cout << "\n"; } cout << "\n"; } void przesun(int jak) { if(jak==1) { for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { if(zabawka[i][j]!=0) { int y = i; int v = zabawka[i][j]; zabawka[i][j] = 0; while(zabawka[y][j]==0&&y>=0) { y--; if(y<0) { break; } } zabawka[y+1][j] = v; } } } } if(jak==2) { for(int i=n-1; i>=0; i--) { for(int j=0; j<m; j++) { if(zabawka[i][j]!=0) { int y = i; int v = zabawka[i][j]; zabawka[i][j] = 0; while(zabawka[y][j]==0&&y<=n) { y++; if(y>=n) { break; } } zabawka[y-1][j] = v; } } } } if(jak==3) { for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { if(zabawka[i][j]!=0) { int x = j; int v = zabawka[i][j]; zabawka[i][j] = 0; while(zabawka[i][x]==0&&x>=0) { x--; if(x<0) { break; } } zabawka[i][x+1] = v; } } } } if(jak==4) { for(int i=0; i<n; i++) { for(int j=m; j>=0; j--) { if(zabawka[i][j]!=0) { int x = j; int v = zabawka[i][j]; zabawka[i][j] = 0; while(zabawka[i][x]==0&&x<=m) { x++; if(x>=m) { break; } } zabawka[i][x-1] = v; } } } } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; zabawka.resize(n+1, vector<int>(m+1, 0)); for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { char z; cin >> z; if(z=='B') { zabawka[i][j] = 1; } if(z=='C') { zabawka[i][j] = 2; } } } cin >> k; vector<vector<int> > g, d, l, p; string x = ""; for(int i=0; i<k; i++) { char z; cin >> z; if(x.size()!=0) { if(x[x.size()-1]==z) { continue; } } x += z; if(z=='G') { przesun(1); } if(z=='D') { przesun(2); } if(z=='L') { przesun(3); } if(z=='P') { przesun(4); } } przeczytaj(); return 0; } |
English