結果
問題 | No.361 門松ゲーム2 |
ユーザー |
![]() |
提出日時 | 2016-04-17 23:23:15 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 863 ms / 2,000 ms |
コード長 | 1,210 bytes |
コンパイル時間 | 1,097 ms |
コンパイル使用メモリ | 165,336 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-04 10:55:21 |
合計ジャッジ時間 | 3,356 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
コンパイルメッセージ
main.cpp: In function ‘long long int calc(long long int)’: main.cpp:42:1: warning: control reaches end of non-void function [-Wreturn-type] 42 | } | ^
ソースコード
#include<bits/stdc++.h> using namespace std; #define int long long typedef pair<int,int>pint; typedef vector<int>vint; typedef vector<pint>vpint; #define pb push_back #define mp make_pair #define fi first #define se second #define all(v) (v).begin(),(v).end() #define rep(i,n) for(int i=0;i<(n);i++) #define reps(i,f,n) for(int i=(f);i<(n);i++) #define each(it,v) for(__typeof((v).begin()) it=(v).begin();it!=(v).end();it++) template<class T,class U>inline void chmin(T &t,U f){if(t>f)t=f;} template<class T,class U>inline void chmax(T &t,U f){if(t<f)t=f;} int memo[555]; int L,D; int calc(int l){ int &ret=memo[l]; if(ret!=-1)return ret; ret=0; set<int>s; reps(l1,1,l){ reps(l2,1,l){ int l3=l-l1-l2; if(l3<=0)continue; if(l1==l2||l2==l3||l3==l1)continue; if(max(max(l1,l2),l3)-min(min(l1,l2),l3)>D)continue; s.insert(calc(l1)^calc(l2)^calc(l3)); } } rep(i,1111){ if(s.find(i)==s.end()){ ret=i; return ret; } } } signed main(){ cin>>L>>D; memset(memo,-1,sizeof(memo)); if(calc(L))cout<<"kado"<<endl; else cout<<"matsu"<<endl; return 0; }