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 >= n { return false } if a+a >= n { return true } if b >= n { return (n / a) % 2 == 0 } if a+b >= n { return true } 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") } } } } }