yukicoder No.331 CodeRunnerでやれ
解法
深さ優先探索をする要領で探索すれば良いです。
bool visit[50][50]; const int B = 25; int dir = 0; void dfs(int y, int x) { visit[y+B][x+B] = true; int odir = dir; string s; cin >> s; for (int k = 0; k < 4; k++) { cout << "L" << endl; cout.flush(); dir = (dir+1)%4; int f; cin >> f; if (f != 0) { if (f == 20151224) { s = "1"; while (isdigit(s[0])) { cout << "F" << endl; cout.flush(); cin >> s; } exit(0); } int ny = y+dy[dir]; int nx = x+dx[dir]; if (visit[ny+B][nx+B]) continue; cout << "F" << endl; cout.flush(); dfs(ny, nx); } } while (dir != odir%4) { cout << "L" << endl; cout.flush(); dir = (dir+1)%4; cin >> s; } cout << "B" << endl; cout.flush(); cin >> s; } int main() { dfs(0, 0); return 0; }