結果
問題 | No.361 門松ゲーム2 |
ユーザー |
|
提出日時 | 2019-12-08 15:28:15 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 21 ms / 2,000 ms |
コード長 | 589 bytes |
コンパイル時間 | 691 ms |
コンパイル使用メモリ | 65,292 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-30 13:25:41 |
合計ジャッジ時間 | 1,803 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
ソースコード
#include<iostream>using namespace std;int grundy[500] = {};bool done[500] = {};int l, d;int dfs(int x){if(done[x]) return grundy[x];done[x] = true;bool memo[500] = {};for(int i = 1; i < x/3; i++){for(int j = i+1; x-i-j > j; j++){if(x-i-j-i > d) continue;memo[dfs(i)^dfs(j)^dfs(x-i-j)] = true;}}for(int i = 0; i < 500; i++){if(!memo[i]) return grundy[x] = i;}return -1; // unreachable}int main(){cin >> l >> d;cout << (dfs(l)==0 ? "matsu" : "kado") << endl;return 0;}