#include #include #include #include using namespace std; vector grid; char com[2000047]; int rotL[] = {3, 0, 1, 2}; int rotR[] = {1, 2, 3, 0}; int flipH[] = {1, 0, 3, 2}; int flipV[] = {3, 2, 1, 0}; int flipMD[] = {0, 3, 2, 1}; int flipAD[] = {2, 1, 0, 3}; int main() { int N ; while(cin >> N){ int v0 = 0, v1 = 1; grid.resize(N); for (int i = 0; i < N; i++) { // for (int j = 0; j< N; j++) { cin >> grid[i]; // } } cin.getline(com, 2000047); cin.getline(com, 2000047); for(int i = 0; com[i]; i+=2){ switch(com[i]){ case '<': v0 = rotL[v0]; v1 = rotL[v1]; break; case '>': v0 = rotR[v0]; v1 = rotR[v1]; break; case '|': v0 = flipH[v0]; v1 = flipH[v1]; break; case '-': v0 = flipV[v0]; v1 = flipV[v1]; break; case '\\': v0 = flipMD[v0]; v1 = flipMD[v1]; break; case '/': v0 = flipAD[v0]; v1 = flipAD[v1]; break; } } if(v0 == 0 && v1 == 1) { // for(int i = 0; i < N; i++) cout << grid[i] << endl; } else if(v0 == 1 && v1 == 0) { for(int i = 0; i < N; i++) { reverse(grid[i].begin(), grid[i].end()); for(int j = 0; j') grid[i][j] = '<'; else if(grid[i][j]=='/') grid[i][j] = '\\'; else if(grid[i][j]=='\\') grid[i][j] = '/'; } } } else if(v0 == 1 && v1 == 2) { vector g2 (N); for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; } else if(v0 == 2 && v1 == 1) { vector g2 (N); for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i < N; i++) { reverse(grid[i].begin(), grid[i].end()); for(int j = 0; j') grid[i][j] = '<'; else if(grid[i][j]=='/') grid[i][j] = '\\'; else if(grid[i][j]=='\\') grid[i][j] = '/'; } } } else if(v0 == 2 && v1 == 3) { vector g2 (N); for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; } else if(v0 == 3 && v1 == 2) { vector g2 (N); for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i < N; i++) { reverse(grid[i].begin(),grid[i].end()); for(int j = 0; j') grid[i][j] = '<'; else if(grid[i][j]=='/') grid[i][j] = '\\'; else if(grid[i][j]=='\\') grid[i][j] = '/'; } } } else if(v0 == 3 && v1 == 0) { vector g2 (N); for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; } else if(v0 == 0 && v1 == 3) { vector g2 (N); for(int i = 0; i') g2[i][j] = 'v'; else if(g2[i][j]=='/') g2[i][j] = '\\'; else if(g2[i][j]=='\\') g2[i][j] = '/'; else if(g2[i][j]=='^') g2[i][j] = '>'; else if(g2[i][j]=='v') g2[i][j] = '<'; else if(g2[i][j]=='|') g2[i][j] = '-'; else if(g2[i][j]=='-') g2[i][j] = '|'; } } grid=g2; for(int i = 0; i < N; i++) { reverse(grid[i].begin(),grid[i].end()); for(int j = 0; j') grid[i][j] = '<'; else if(grid[i][j]=='/') grid[i][j] = '\\'; else if(grid[i][j]=='\\') grid[i][j] = '/'; } } } for(int i = 0; i