For problem statement at 1000-1999/1900-1999/1960-1969/1968/problemF.txt this is a correct solution, but verifier at 1000-1999/1900-1999/1960-1969/1968/verifierF.go ends with All 100 tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
if _, err := fmt.Fscan(in, &t); err != nil {
return
}
for tc := 0; tc < t; tc++ {
var n, q int
fmt.Fscan(in, &n, &q)
pref := make([]int, n+1)
pos := make(map[int][]int)
pos[0] = append(pos[0], 0)
for i := 1; i <= n; i++ {
var a int
fmt.Fscan(in, &a)
pref[i] = pref[i-1] ^ a
pos[pref[i]] = append(pos[pref[i]], i)
}
for k := 0; k < q; k++ {
var l, r int
fmt.Fscan(in, &l, &r)
if pref[r]^pref[l-1] == 0 {
fmt.Fprintln(out, "YES")
continue
}
val1 := pref[r]
list1 := pos[val1]
idx1 := sort.Search(len(list1), func(i int) bool {
return list1[i] >= l
})
val2 := pref[l-1]
list2 := pos[val2]
idx2 := sort.Search(len(list2), func(i int) bool {
return list2[i] > r-1
}) - 1
if idx1 < len(list1) && idx2 >= 0 && list1[idx1] < list2[idx2] {
fmt.Fprintln(out, "YES")
} else {
fmt.Fprintln(out, "NO")
}
}
}
}