結果
問題 |
No.7 プライムナンバーゲーム
|
ユーザー |
![]() |
提出日時 | 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") } }