1 条题解
-
0
#include <iostream> #include <string> #include <vector> using namespace std; int main() { int r, c, start; while (cin >> r >> c >> start, r || c || start) { vector<string> grid(r); for (int i = 0; i < r; ++i) cin >> grid[i]; vector<vector<int> > visited(r, vector<int>(c, -1)); int step = 0; int x = 0, y = start - 1; while (true) { if (x < 0 || x >= r || y < 0 || y >= c) { cout << step << " step(s) to exit" << endl; break; } if (visited[x][y] != -1) { cout << visited[x][y] << " step(s) before a loop of " << step - visited[x][y] << " step(s)" << endl; break; } visited[x][y] = step++; char dir = grid[x][y]; if (dir == 'N') --x; else if (dir == 'S') ++x; else if (dir == 'E') ++y; else if (dir == 'W') --y; } } return 0; }
- 1
信息
- ID
- 574
- 时间
- 1000ms
- 内存
- 10MiB
- 难度
- 8
- 标签
- 递交数
- 3
- 已通过
- 1
- 上传者