結果
問題 | No.331 CodeRunnerでやれ |
ユーザー |
![]() |
提出日時 | 2016-05-28 16:09:28 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,647 bytes |
コンパイル時間 | 541 ms |
コンパイル使用メモリ | 56,572 KB |
実行使用メモリ | 94,668 KB |
平均クエリ数 | 0.06 |
最終ジャッジ日時 | 2024-07-16 23:50:21 |
合計ジャッジ時間 | 7,964 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | TLE * 1 |
other | AC * 1 -- * 15 |
ソースコード
#include<iostream>using namespace std;#define UNKNOWN 0#define ISEMPTY 1#define ISWALL 2#define UP 0#define RIGHT 1#define DOWN 2#define LEFT 3int dirtbl[4][2] = { {0,-1},{1,0},{0,1},{-1,0} };int main(){//初期位置を(19,19)上向きとするint map[39][39]{ {0} }, x = 19, y = 19,dx = 0, dy = -1, n, i, xtmp, ytmp, direction = UP,dirtmp;map[19][19] = ISEMPTY;while (1) {cin >> n;if (cin.fail()) { return 0; }if (n == 20151224) {cout << "F" << endl << flush;x += dx; y += dy;continue;}map[x + (n + 1) * dx][y + (n + 1) * dy] = ISWALL;//右?dirtmp = (direction + 1) % 4;xtmp = dirtbl[dirtmp][0]; ytmp = dirtbl[dirtmp][1];if(map[x + xtmp][y+ytmp]==UNKNOWN){cout << "R" << endl << flush;direction = dirtmp;dx = xtmp; dy = ytmp;continue;}//左?dirtmp = (direction - 1) % 4;xtmp = dirtbl[dirtmp][0]; ytmp = dirtbl[dirtmp][1];if (map[x+xtmp][y+ytmp] == UNKNOWN) {cout << "L" << endl << flush;direction = dirtmp;dx = xtmp; dy = ytmp;continue;}//逆?dirtmp = (direction + 2) % 4;xtmp = dirtbl[dirtmp][0]; ytmp = dirtbl[dirtmp][1];if (map[x+xtmp][y+ytmp] == UNKNOWN) {cout << "R" << endl << flush;direction = (direction + 1) % 4;dx = dirtbl[direction][0]; dy = dirtbl[direction][1];continue;}//壁?if (map[x + dx][y + dy] == ISWALL) {cout << "R" << endl << flush;direction = (direction + 1) % 4;dx = dirtbl[direction][0]; dy = dirtbl[direction][1];continue;}//それ以外cout << "F" << endl << flush;x += dx; y += dy;map[x][y] = ISEMPTY;}return 0;}