結果
問題 | No.7 プライムナンバーゲーム |
ユーザー |
![]() |
提出日時 | 2017-12-30 12:07:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 5,000 ms |
コード長 | 912 bytes |
コンパイル時間 | 1,367 ms |
コンパイル使用メモリ | 169,868 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-01 16:08:06 |
合計ジャッジ時間 | 1,962 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
#include <bits/stdc++.h> #define INF 1e+9 #define MOD (int)1e9+7 #define debug(x) cerr << #x << ": " << x << "\n"; using namespace std; using ll = long long; using P = pair<int, int>; vector<int> prime; bool win[10001]; int main(void){ int N; cin >> N; prime.push_back(2); for(int i = 3; i <= N; i++){ for(auto p: prime){ if(i % p == 0) break; else if(p == *(end(prime) - 1)) prime.push_back(i); } } win[0] = win[1] = 1; for(int i = 2; i <= N; i++){ win[i] = 0; for(int j = 0; prime[j] <= i and prime[j] > 0; j++){ if(win[i - prime[j]] == 0){ win[i] = 1; // debug(prime[j]);debug(j); break; } } // debug(i);debug(win[i]); } // for(auto p: prime) debug(p); if(win[N]) cout << "Win\n"; else cout << "Lose\n"; return 0; }