結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
seiichi
|
| 提出日時 | 2021-01-21 15:33:51 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 25 ms / 5,000 ms |
| コード長 | 901 bytes |
| コンパイル時間 | 12,015 ms |
| コンパイル使用メモリ | 216,728 KB |
| 実行使用メモリ | 5,888 KB |
| 最終ジャッジ日時 | 2024-10-01 16:42:23 |
| 合計ジャッジ時間 | 10,888 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 17 |
ソースコード
package main
import (
"fmt"
)
func scan() (N int) {
fmt.Scan(&N)
return
}
func getPrimeNum(N int) (primeList []int) {
for i := 2; i < N+1; i++ {
primeList = append(primeList, i)
}
i := 2
for i*i < N+1 {
var tmpPrimeList []int
for _, p := range primeList {
if p <= i || p%i != 0 {
tmpPrimeList = append(tmpPrimeList, p)
}
}
primeList = tmpPrimeList
i++
}
return
}
func main() {
N := scan()
// N := 5
// N := 12
primeNum := getPrimeNum(N)
// 値Nをもらった時の勝てるか、勝てないか?を表現するリスト
var dp [10000 + 1]bool
// 初期値
dp[2] = false
for i := 3; i < N+1; i++ {
for _, p := range primeNum {
if i-p > 1 {
if !dp[i-p] {
// i - p で相手に渡して、相手が負けるパターンを見つける
dp[i] = true
}
}
}
}
if dp[N] {
fmt.Print("Win")
} else {
fmt.Print("Lose")
}
}
seiichi