package main import ( . "fmt" . "math/rand" ) func main() { perms := [][]int{} for a := 0; a < 5; a++ { for b := 0; b < 5; b++ { if a == b { continue } for c := 0; c < 5; c++ { if a == c || b == c { continue } for d := 0; d < 5; d++ { if a == d || b == d || c == d { continue } for e := 0; e < 5; e++ { if a == e || b == e || c == e || d == e { continue } perms = append(perms, []int{a, b, c, d, e}) } } } } } Shuffle(len(perms), func(i, j int) { perms[i], perms[j] = perms[j], perms[i] }) xxs := [][]int{} for a := 0; a <= 9; a++ { for b := a + 1; b <= 9; b++ { for c := b + 1; c <= 9; c++ { for d := c + 1; d <= 9; d++ { for e := d + 1; e <= 9; e++ { xs := []int{a, b, c, d, e} xxs = append(xxs, xs) } } } } } Shuffle(len(xxs), func(i, j int) { xxs[i], xxs[j] = xxs[j], xxs[i] }) for _, xs := range xxs { for _, p := range perms { for _, j := range p { Print(xs[j]) } Println() fin := false cnt := 0 for i := 0; i < 30; i++ { var hi, bi int Scan(&hi, &bi) if i == 0 && hi == 5 && bi == 0 { fin = true } if hi != 5 && hi+bi == 5 { cnt++ } } if fin { return } if cnt == 0 { break } } } }