For problem statement at 0-999/500-599/540-549/546/problemC.txt this is a correct solution, but verifier at 0-999/500-599/540-549/546/verifierC.go ends with All tests passed can you fix the verifier? package main
import (
"fmt"
)
func main() {
var n int
if _, err := fmt.Scan(&n); err != nil {
return
}
var k1 int
fmt.Scan(&k1)
q1 := make([]int, 20)
l1 := k1
h1 := 0
for i := 0; i < k1; i++ {
fmt.Scan(&q1[i])
}
var k2 int
fmt.Scan(&k2)
q2 := make([]int, 20)
l2 := k2
h2 := 0
for i := 0; i < k2; i++ {
fmt.Scan(&q2[i])
}
fights := 0
visited := make(map[uint64]bool)
for l1 > 0 && l2 > 0 {
var state uint64 = uint64(l1)
shift := 4
for i := 0; i < l1; i++ {
state |= uint64(q1[(h1+i)%20]) << shift
shift += 4
}
for i := 0; i < l2; i++ {
state |= uint64(q2[(h2+i)%20]) << shift
shift += 4
}
if visited[state] {
fmt.Println("-1")
return
}
visited[state] = true
c1 := q1[h1]
h1 = (h1 + 1) % 20
l1--
c2 := q2[h2]
h2 = (h2 + 1) % 20
l2--
if c1 > c2 {
q1[(h1+l1)%20] = c2
l1++
q1[(h1+l1)%20] = c1
l1++
} else {
q2[(h2+l2)%20] = c1
l2++
q2[(h2+l2)%20] = c2
l2++
}
fights++
}
if l1 == 0 {
fmt.Printf("%d 2\n", fights)
} else {
fmt.Printf("%d 1\n", fights)
}
}