結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
kokatsu
|
| 提出日時 | 2022-10-16 21:50:30 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
AC
|
| 実行時間 | 4 ms / 5,000 ms |
| コード長 | 658 bytes |
| コンパイル時間 | 1,819 ms |
| コンパイル使用メモリ | 208,116 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-22 16:22:58 |
| 合計ジャッジ時間 | 2,547 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
import std;
void main() {
int N;
readf("%d\n", N);
auto sieve = new bool[](N+1);
sieve[2..N+1] = true;
int d = 2;
while (d * d <= N) {
if (sieve[d]) {
foreach (i; iota(d*d, N+1, d)) {
sieve[i] = false;
}
}
++d;
}
auto primes = iota(N+1).filter!(i => sieve[i]).array;
auto dp = new bool[](N+1);
dp[0..2] = true;
foreach (i; 2 .. N+1) {
foreach (p; primes) {
if (i < p) break;
if (!dp[i-p]) {
dp[i] = true;
break;
}
}
}
writeln(dp[N] ? "Win" : "Lose");
}
kokatsu