結果
問題 | No.331 CodeRunnerでやれ |
ユーザー | paruki |
提出日時 | 2019-01-26 16:17:49 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 373 ms / 5,000 ms |
コード長 | 1,710 bytes |
コンパイル時間 | 1,681 ms |
コンパイル使用メモリ | 172,408 KB |
実行使用メモリ | 25,232 KB |
平均クエリ数 | 787.18 |
最終ジャッジ日時 | 2024-07-17 02:07:18 |
合計ジャッジ時間 | 7,708 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 145 ms
24,976 KB |
testcase_01 | AC | 158 ms
24,976 KB |
testcase_02 | AC | 180 ms
24,848 KB |
testcase_03 | AC | 353 ms
25,232 KB |
testcase_04 | AC | 191 ms
24,964 KB |
testcase_05 | AC | 213 ms
24,836 KB |
testcase_06 | AC | 316 ms
24,848 KB |
testcase_07 | AC | 325 ms
25,220 KB |
testcase_08 | AC | 285 ms
25,232 KB |
testcase_09 | AC | 274 ms
24,964 KB |
testcase_10 | AC | 326 ms
25,220 KB |
testcase_11 | AC | 350 ms
24,848 KB |
testcase_12 | AC | 260 ms
24,836 KB |
testcase_13 | AC | 316 ms
24,836 KB |
testcase_14 | AC | 318 ms
24,848 KB |
testcase_15 | AC | 207 ms
24,580 KB |
testcase_16 | AC | 373 ms
24,964 KB |
ソースコード
#define _USE_MATH_DEFINES #include "bits/stdc++.h" using namespace std; #define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i)) #define rep(i,j) FOR(i,0,j) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define MT make_tuple #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)<<endl #define smax(x,y) (x)=max((x),(y)) #define smin(x,y) (x)=min((x),(y)) #define MEM(x,y) memset((x),(y),sizeof (x)) #define sz(x) (int)(x).size() #define RT return using ll = long long; using pii = pair<int, int>; using vi = vector<int>; using vll = vector<ll>; const int DY[] = { -1,0,1,0 }; const int DX[] = { 0,1,0,-1 }; const int INF = 20151224; stack<char> hs; int dir; int order(char c) { if (c == 'R' || c == 'F')hs.push(c); if (c == 'R') (dir += 1) %= 4; else if (c == 'L')(dir += 3) %= 4; cout << c << endl; string res; cin >> res; if (res[0] == 'M') exit(0); return stoi(res); } int A[410][410]; const int OS = 205; void dfs(int y, int x) { if (A[y][x]++)return; while (dir != 3) order('R'); rep(i, 4) { int movable = order('R'); int ny = DY[i] + y; int nx = DX[i] + x; if (!movable)A[ny][nx] = 1; if (!A[ny][nx]) { int stk_size = sz(hs); order('F'); dfs(ny, nx); while (sz(hs) > stk_size) { char c = hs.top(); hs.pop(); if (c == 'R')order('L'); else order('B'); } } } } void solve() { {string s; cin >> s; } dfs(OS, OS); } int main() { // ios::sync_with_stdio(false); // cin.tie(0); cout << fixed << setprecision(15); solve(); return 0; }