For problem statement at 1000-1999/1200-1299/1280-1289/1285/problemD.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1280-1289/1285/verifierD.go ends with all tests passed can you fix the verifier? package main
import (
"fmt"
"io"
"os"
"sort"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
nextInt := func() int {
for idx < len(data) && (data[idx] < '0' || data[idx] > '9') {
idx++
}
val := 0
for idx < len(data) && data[idx] >= '0' && data[idx] <= '9' {
val = val*10 + int(data[idx]-'0')
idx++
}
return val
}
n := nextInt()
a := make([]int, n)
for i := 0; i < n; i++ {
a[i] = nextInt()
}
sort.Ints(a)
var dfs func(int, int, int) int
dfs = func(l, r, bit int) int {
if r-l <= 1 || bit < 0 {
return 0
}
m := l
mask := 1 << bit
for m < r && (a[m]&mask) == 0 {
m++
}
if m == l || m == r {
return dfs(l, r, bit-1)
}
x := dfs(l, m, bit-1)
y := dfs(m, r, bit-1)
if x < y {
return mask + x
}
return mask + y
}
fmt.Print(dfs(0, n, 29))
}