結果
| 問題 |
No.361 門松ゲーム2
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-12-11 16:05:36 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 900 bytes |
| コンパイル時間 | 1,674 ms |
| コンパイル使用メモリ | 169,096 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-11-29 03:33:17 |
| 合計ジャッジ時間 | 2,702 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 15 WA * 13 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define each(itr,c) for(__typeof(c.begin()) itr=c.begin(); itr!=c.end(); ++itr)
#define all(x) (x).begin(),(x).end()
#define pb push_back
#define fi first
#define se second
int D;
int win[501];
int dfs(int x)
{
if(win[x]>=0) return win[x];
if(x<=5) return 0;
int ret=0;
for(int a=1; a<=x/2; ++a)
{
for(int b=a+1; a+b<=x; ++b)
{
int c=x-b-a;
if(b>=c) break;
if(a!=c && b!=c && max({a,b,c})-min({a,b,c})<=D)
{
if(!dfs(a) && !dfs(b) && !dfs(c)) ret=1;
}
}
}
return win[x]=ret;
}
int main()
{
int L;
cin >>L >>D;
memset(win,-1,sizeof(win));
string ans="matsu";
if(dfs(L)==1) ans="kado";
cout << ans << endl;
return 0;
}