結果
問題 | No.7 プライムナンバーゲーム |
ユーザー |
![]() |
提出日時 | 2023-11-06 01:32:34 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 9 ms / 5,000 ms |
コード長 | 753 bytes |
コンパイル時間 | 1,948 ms |
コンパイル使用メモリ | 196,952 KB |
最終ジャッジ日時 | 2025-02-17 19:46:24 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
#include"bits/stdc++.h" using namespace std; using ll = long long; using ld = long double; #define rep(i,m,n) for(ll i=(ll)m;i<(ll)n;i++) #define Endl endl #define pr(i,j) make_pair(i,j) const ll mod = 998244353; const ll inf = 5e18; const ld pi = 3.14159265358979; bool is_prime(ll n) { if (n == 1)return false; for (ll i = 2; i * i <= n; i++) { if (n % i == 0)return false; } return true; } int main() { ll n; cin >> n; vector<ll>p; rep(i, 1, n + 1) { if (is_prime(i))p.push_back(i); } vector<ll>ar(n + 1); ar[0] = 1; ar[1] = 1; rep(i, 2, n + 1) { bool f = false; rep(j, 0, p.size()) { if (p[j] > i)break; if (ar[i - p[j]] == 0)f = true; } ar[i] = f; } if (ar[n])cout << "Win" << endl; else cout << "Lose" << endl; }