解題心得
嗚嗚
程式碼
#include <iostream> using namespace std; int main() { int Xmax, Ymax, x, y, grid[51][51] = { 0 }; char orient; string s; cin >> Xmax >> Ymax; while (cin >> x >> y >> orient) { bool isLost = false; cin >> s; for (int i = 0; i < s.length(); i++) { if (s[i] == 'L') { if (orient == 'N') orient = 'W'; else if (orient == 'E') orient = 'N'; else if (orient == 'S') orient = 'E'; else if (orient == 'W') orient = 'S'; } else if (s[i] == 'R') { if (orient == 'N') orient = 'E'; else if (orient == 'E') orient = 'S'; else if (orient == 'S') orient = 'W'; else if (orient == 'W') orient = 'N'; } else { int next_x = x, next_y = y; if (orient == 'N') next_y++; else if (orient == 'E') next_x++; else if (orient == 'S') next_y--; else if (orient == 'W') next_x--; if (next_x<0 || next_y<0 || next_x>Xmax || next_y>Ymax) { if (grid[x][y] == 1) continue; isLost = true; grid[x][y] = 1; break; } x = next_x, y = next_y; } } cout << x << " " << y << " " << orient; if (isLost) cout << " LOST"; cout << endl; } return 0; }
沒有留言:
張貼留言