結果
| 問題 | No.3300 Frog Game |
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2026-01-17 13:44:48 |
| 言語 | Go (1.25.5) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,369 bytes |
| 記録 | |
| コンパイル時間 | 14,999 ms |
| コンパイル使用メモリ | 244,268 KB |
| 実行使用メモリ | 7,852 KB |
| 最終ジャッジ日時 | 2026-01-17 13:45:04 |
| 合計ジャッジ時間 | 14,923 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge6 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 25 WA * 10 |
ソースコード
package main
import . "fmt"
func init() {
// check()
}
func main() {
var n, a, b int
Scan(&n,&a,&b)
defer func() {
if recover() != nil {
if solve(n, a, b) {
Println("sepa")
} else {
Println("ryota")
}
}
}()
if dpsol(n, a, b) {
Println("sepa")
} else {
Println("ryota")
}
}
func solve(n, a, b int) bool {
n--
if a+a >= n || a+b >= n {
return true
}
if a >= n {
return false
}
if b >= n {
return (n / a) % 2 == 0
}
if b % a == 0 {
if (n / a) % 2 != 0 {
return (n / a) % 2 == 0
} else {
return (n / b + (n % b) / a) % 2 != 0
}
}
return (n / (a+b) + (n % (a+b)) / a) % 2 == 0
}
func dpsol(n, a, b int) bool {
if 1+a >= n {
return false
}
dp := make([]int, n+a+1)
for i := 0; i < a; i++ {
dp[n-a+i] = 1
}
for i := n; i > 1; i-- {
if dp[i] == 0 {
continue
}
if i-a > 0 {
dp[i-a] = max(dp[i-a], 3-dp[i])
}
if i-b > 0 {
dp[i-b] = max(dp[i-b], 3-dp[i])
}
}
return dp[1] == 2
}
func check() {
for n,m := 1, 2; n < 1e5; n,m = m,n+m {
for a := 1; a <= 30 && a+1 < n; a++ {
for b := a+1; b < n && b < a*30; b += a+1 {
result := dpsol(n, a, b)
answer := solve(n, a, b)
if result != answer {
println(Sprintf("n=%d,a=%d,b=%d",n,a,b))
println(Sprintf("result=%v", result))
println(Sprintf("answer=%v", answer))
panic("WA")
}
}
}
}
}
ID 21712