For problem statement at 1000-1999/1400-1499/1450-1459/1451/problemE2.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1450-1459/1451/verifierE2.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var n int
fmt.Fscan(reader, &n)
pos := make([]int, n)
pos[0] = 1
x := make([]int, n+1)
dupI, dupJ := 0, 0
for i := 2; i <= n; i++ {
fmt.Fprintf(writer, "XOR 1 %d\n", i)
writer.Flush()
fmt.Fscan(reader, &x[i])
if pos[x[i]] != 0 {
dupI = i
dupJ = pos[x[i]]
} else {
pos[x[i]] = i
}
}
var a1 int
if dupI != 0 {
fmt.Fprintf(writer, "AND %d %d\n", dupI, dupJ)
writer.Flush()
var val int
fmt.Fscan(reader, &val)
a1 = val ^ x[dupI]
} else {
idx1 := pos[1]
idx2 := pos[2]
fmt.Fprintf(writer, "AND 1 %d\n", idx1)
writer.Flush()
var val1 int
fmt.Fscan(reader, &val1)
fmt.Fprintf(writer, "AND 1 %d\n", idx2)
writer.Flush()
var val2 int
fmt.Fscan(reader, &val2)
a1 = val1 | (val2 & 1)
}
a := make([]int, n+1)
a[1] = a1
for i := 2; i <= n; i++ {
a[i] = a1 ^ x[i]
}
fmt.Fprintf(writer, "!")
for i := 1; i <= n; i++ {
fmt.Fprintf(writer, " %d", a[i])
}
fmt.Fprintf(writer, "\n")
writer.Flush()
}