For problem statement at 0-999/0-99/60-69/63/problemC.txt this is a correct solution, but verifier at 0-999/0-99/60-69/63/verifierC.go ends with All tests passed can you fix the verifier? package main
import (
"fmt"
)
type Guess struct {
num string
bulls int
cows int
}
func main() {
var n int
if _, err := fmt.Scan(&n); err != nil {
return
}
guesses := make([]Guess, n)
for i := 0; i < n; i++ {
fmt.Scan(&guesses[i].num, &guesses[i].bulls, &guesses[i].cows)
}
var match string
count := 0
for d1 := 0; d1 <= 9; d1++ {
for d2 := 0; d2 <= 9; d2++ {
if d2 == d1 {
continue
}
for d3 := 0; d3 <= 9; d3++ {
if d3 == d1 || d3 == d2 {
continue
}
for d4 := 0; d4 <= 9; d4++ {
if d4 == d1 || d4 == d2 || d4 == d3 {
continue
}
cand := fmt.Sprintf("%d%d%d%d", d1, d2, d3, d4)
ok := true
for _, g := range guesses {
b := 0
c := 0
for i := 0; i < 4; i++ {
if cand[i] == g.num[i] {
b++
} else {
for j := 0; j < 4; j++ {
if cand[i] == g.num[j] {
c++
}
}
}
}
if b != g.bulls || c != g.cows {
ok = false
break
}
}
if ok {
match = cand
count++
}
}
}
}
}
if count == 0 {
fmt.Println("Incorrect data")
} else if count == 1 {
fmt.Println(match)
} else {
fmt.Println("Need more data")
}
}