For problem statement at 2000-2999/2000-2099/2020-2029/2022/problemD2.txt this is a correct solution, but verifier at 2000-2999/2000-2099/2020-2029/2022/verifierD2.go ends with could not parse candidate output: expected 502 outputs, got 44
exit status 1 can you fix the verifier? package main
import (
"fmt"
"os"
)
func main() {
var t int
if _, err := fmt.Fscan(os.Stdin, &t); err != nil {
return
}
for i := 0; i < t; i++ {
var n int
if _, err := fmt.Fscan(os.Stdin, &n); err != nil {
return
}
query := func(u, v int) int {
fmt.Printf("? %d %d\n", u, v)
var res int
fmt.Fscan(os.Stdin, &res)
if res == -1 {
os.Exit(0)
}
return res
}
pairsToTest := (n - 2) / 2
if n%2 == 1 {
pairsToTest = (n - 1) / 2
}
impostor := -1
for j := 1; j <= pairsToTest; j++ {
A := 2*j - 1
B := 2 * j
ans1 := query(A, B)
ans2 := query(B, A)
if ans1 != ans2 {
C := 1
if A == 1 {
C = 3
}
ans3 := query(A, C)
ans4 := query(C, A)
if ans3 != ans4 {
impostor = A
} else {
impostor = B
}
break
}
}
if impostor == -1 {
if n%2 == 1 {
impostor = n
} else {
A := n - 1
B := n
C := 1
ans3 := query(A, C)
ans4 := query(C, A)
if ans3 != ans4 {
impostor = A
} else {
impostor = B
}
}
}
fmt.Printf("! %d\n", impostor)
}
}