1 #include <iostream> 2 #include <sstream> 3 #include <string> 4 #include <algorithm> 5 #include <vector> 6 using namespace std; 7 8 #define GI ({int _t; scanf("%d", &_t); _t;}) 9 #define FOR(i, a, b) for (int i=a; i<b; i++) 10 #define REP(i, a) FOR(i, 0, a) 11 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();} 12 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;} 13 #define DBG(x) cout << #x << "::" << x << endl; 14 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;} 15 #define OK(x,y) (x >= 0 && y >= 0 && x <= X && y <= Y) 16 #define sz size() 17 typedef pair<int,int> PII; 18 int X, Y; 19 char turnLeft(char dir) { 20 switch (dir) { 21 case 'E': return 'N'; 22 case 'N': return 'W'; 23 case 'W': return 'S'; 24 case 'S': return 'E'; 25 } 26 } 27 28 char turnRight(char dir) { 29 switch (dir) { 30 case 'W': return 'N'; 31 case 'N': return 'E'; 32 case 'E': return 'S'; 33 case 'S': return 'W'; 34 } 35 } 36 37 PII moveForward(PII pos, char dir) { 38 int x = pos.first, y = pos.second; 39 if (dir == 'E') x++; 40 else if (dir == 'W') x--; 41 else if (dir == 'N') y++; 42 else if (dir == 'S') y--; 43 if (OK(x,y)) return PII(x,y); 44 else return PII(-1, -1); 45 } 46 47 int main() { 48 X = GI; Y = GI; 49 int x, y; 50 char dir; 51 bool board[51][51]; 52 REP(i,51) REP(j, 51) board[i][j] = false; 53 while (cin >> x >> y >> dir) { 54 bool lost = false; 55 string seq; 56 cin >> seq; 57 REP(i, seq.sz) { 58 if (seq[i] == 'L') { 59 dir = turnLeft(dir); 60 } 61 else if (seq[i] == 'R') { 62 dir = turnRight(dir); 63 } 64 else if (seq[i] == 'F') { 65 PII newpos = moveForward(PII(x,y), dir); 66 if (newpos.first == -1 && newpos.second == -1 && board[x][y] == false) { 67 printf("%d %d %c LOST\n", x, y, dir); 68 board[x][y] = true; 69 lost = true; 70 break; 71 } 72 else if (newpos.first != -1) { 73 x = newpos.first; 74 y = newpos.second; 75 } 76 } 77 //printf("##%d %d %c\n", x, y, dir); 78 } 79 if (!lost) 80 printf("%d %d %c\n", x, y, dir); 81 } 82 return 0; 83 }