結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
tsuchinaga
|
| 提出日時 | 2019-04-25 09:39:38 |
| 言語 | Go (1.23.4) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 786 bytes |
| コンパイル時間 | 16,691 ms |
| コンパイル使用メモリ | 223,056 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-17 18:44:19 |
| 合計ジャッジ時間 | 17,468 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 7 WA * 10 |
ソースコード
package main
import "fmt"
func main() {
var n int
_, _ = fmt.Scan(&n)
pn := make([]int, 0)
pnn := make([]int, n+1)
for i := 2; i <= n; i++ {
if pnn[i] == 0 {
pn = append(pn, i)
for j := i + i; j <= n; j += i {
pnn[j] = 1
}
}
}
// fmt.Println(pn)
// 1が勝ち、-1が負け、0は未確認
wl := make([]int, n+1)
wl[0], wl[1], wl[2], wl[3] = 1, 1, -1, -1
u := n + 1 - 4 // 未確定数
t := -1 // 勝ちか負けのどちらを確認するか
for u > 0 {
for m, w := range wl {
if w != t {
continue
}
for _, p := range pn {
if i := m + p; i < n+1 && wl[i] == 0 {
wl[i] = w * -1
u--
}
}
}
// fmt.Println(u, t, wl)
t *= -1
}
if wl[n] == 1 {
fmt.Println("Win")
} else {
fmt.Println("Lose")
}
}
tsuchinaga