For problem statement at 0-999/0-99/60-69/61/problemE.txt this is a correct solution, but verifier at 0-999/0-99/60-69/61/verifierE.go ends with All 100 tests passed. can you fix the verifier? package main
import (
"fmt"
"io"
"os"
"sort"
)
func nextInt(data []byte, idx *int) int {
n := len(data)
i := *idx
for i < n && data[i] <= ' ' {
i++
}
v := 0
for i < n {
c := data[i]
if c < '0' || c > '9' {
break
}
v = v*10 + int(c-'0')
i++
}
*idx = i
return v
}
func main() {
data, _ := io.ReadAll(os.Stdin)
idx := 0
n := nextInt(data, &idx)
a := make([]int, n)
vals := make([]int, n)
for i := 0; i < n; i++ {
v := nextInt(data, &idx)
a[i] = v
vals[i] = v
}
sort.Ints(vals)
for i := 0; i < n; i++ {
a[i] = sort.SearchInts(vals, a[i]) + 1
}
right := make([]int, n)
tree := make([]int, n+2)
for i := n - 1; i >= 0; i-- {
r := a[i]
s := 0
for x := r - 1; x > 0; x -= x & -x {
s += tree[x]
}
right[i] = s
for x := r; x <= n; x += x & -x {
tree[x]++
}
}
for i := range tree {
tree[i] = 0
}
var ans int64
seen := 0
for i := 0; i < n; i++ {
r := a[i]
le := 0
for x := r; x > 0; x -= x & -x {
le += tree[x]
}
leftGreater := seen - le
ans += int64(leftGreater) * int64(right[i])
for x := r; x <= n; x += x & -x {
tree[x]++
}
seen++
}
fmt.Print(ans)
}