package main import . "fmt" var dump = false func init() { // check() dump = true // check2() // check3() dump = false } 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 } aa := (n + a - 1) / a bb := n / b if n % b == 0 { bb += (b + a - 1) / a - 1 } else { bb += (n % b + a - 1) / a } if aa % 2 == bb % 2 { return aa % 2 == 0 } ab := n / (a + b) + (n % (a + b) + a - 1) / a return ab % 2 == aa % 2 } 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]) } } if dump { println(Sprintf("n=%d,a=%d,b=%d,ans=%v", n,a,b,dp[1]==2)) println(tostr(dp)) } return dp[1] == 2 } func tostr(dp []int) string { bs := make([]byte, len(dp)) for i, v := range dp { bs[i] = byte(v+'0') } return string(bs) } func check() { ac, wa := 0, 0 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 { ac++ } else { wa++ if wa == 1 { println(Sprintf("n=%d,a=%d,b=%d",n,a,b)) println(Sprintf("result=%v", result)) println(Sprintf("answer=%v", answer)) } } } } } println(Sprintf("AC=%d,WA=%d",ac, wa)) } func check2() { ns := []int{103} ac, wa := 0, 0 for _, n := range ns { for a := 1; a < 12; a++ { for b := a+a; b < 10*a; b += a+a { result := dpsol(n, a, b) answer := solve(n, a, b) if result == answer { ac++ } else { wa++ if wa == 1 { println(Sprintf("n=%d,a=%d,b=%d",n,a,b)) println(Sprintf("result=%v", result)) println(Sprintf("answer=%v", answer)) } } } } } println(Sprintf("AC=%d,WA=%d",ac, wa)) } func check3() { ns := []int{103} ac, wa := 0, 0 for _, n := range ns { for a := 1; a < 12; a++ { for b := a+a+a; b < 10*a; b += a+a { result := dpsol(n, a, b) answer := solve(n, a, b) if result == answer { ac++ } else { wa++ if wa == 1 { println(Sprintf("n=%d,a=%d,b=%d",n,a,b)) println(Sprintf("result=%v", result)) println(Sprintf("answer=%v", answer)) } } } } } println(Sprintf("AC=%d,WA=%d",ac, wa)) }