解題心得
嗚嗚
程式碼
#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;
}
沒有留言:
張貼留言