結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
kou_kkk
|
| 提出日時 | 2023-08-04 13:33:38 |
| 言語 | Nim (2.2.0) |
| 結果 |
AC
|
| 実行時間 | 9 ms / 5,000 ms |
| コード長 | 714 bytes |
| コンパイル時間 | 5,148 ms |
| コンパイル使用メモリ | 66,560 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-14 10:27:41 |
| 合計ジャッジ時間 | 5,923 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
import math, sequtils, strutils, sugar
let n = parseInt readLine stdin
var isPrimes = true.repeat n.succ
for i in [0, 1]:
isPrimes[i] = false
let rn = toInt ceil sqrt toFloat n
for i in 2 .. rn:
if not isPrimes[i]:
continue
for i2 in countup(i ^ 2, n, i):
isPrimes[i2] = false
let primes = collect(newSeq):
for i, v in isPrimes:
if v: i
const
win = 1
lose = 0
var dp = repeat(-1, n.succ)
proc fn(v: int): int =
result = lose
for p in primes:
if p > v:
break
let v2 = v - p
if v2 in [0, 1]:
continue
if dp[v2] == -1:
dp[v2] = fn v2
if dp[v2] == lose:
return win
if n.fn == win:
echo "Win"
else:
echo "Lose"
kou_kkk