#include<bits/stdc++.h> using namespace std; int a[1001][1001];//0δ 1Õϰ 2¿ÉÐÐ int fzx[200]; int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, -1, 0, 1}; bool f[1001][1001]; int main () { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int nx = 100, ny = 100; cout << "LEFT" << endl; a[nx][ny] = 2; int fx; fzx['N'] = 0; fzx['S'] = 2; fzx['W'] = 1; fzx['E'] = 3; char s; cin >> s; fx = fzx[s]; int s1 = 1, s2 = 0; int maxx = 100, minx = 100, maxy = 100, miny = 100; while (true) { string feedback; if (a[nx + dx[fx]][ny + dy[fx]] == 0) { s1 = 0; s2 = 0; cout << "GO" << endl; cin >> feedback; if (feedback == "FAIL") { a[nx + dx[fx]][ny + dy[fx]] = 1; } else { nx += dx[fx]; ny += dy[fx]; } } else if (a[nx + dx[(fx + 1) % 4]][ny + dy[(fx + 1) % 4]] == 0) { s2 = 0; s1++; fx = (fx + 1) % 4; cout << "LEFT" << endl; cin >> feedback; cout << "Go" << endl; cin >> feedback; if (feedback == "FAIL") { a[nx + dx[fx]][ny + dy[fx]] = 1; } else { nx += dx[fx]; ny += dy[fx]; } } else if (a[nx + dx[(fx + 3) % 4]][ny + dy[(fx + 3) % 4]] == 0) { s2++; s1 = 0; fx = (fx + 3) % 4; cout << "RIGHT" << endl; cin >> feedback; cout << "Go" << endl; cin >> feedback; if (feedback == "FAIL") { a[nx + dx[fx]][ny + dy[fx]] = 1; } else { nx += dx[fx]; ny += dy[fx]; } } else { cout << "END" << endl; cout << maxx - minx + 1 << " " << maxy - miny + 1 << endl; for (int i = minx; i <= maxx; i++) { for (int j = miny; j <= maxy; j++) { if (a[i][j] == 0 || a[i][j] == 1) { cout << "#"; } else { cout << "."; } } cout << endl; } return 0; } maxx = max(maxx, nx + dx[fx]); maxy = max(maxy, ny + dy[fx]); minx = min(minx, nx + dx[fx]); miny = min(miny, ny + dy[fx]); } return 0; }