For problem statement at 1000-1999/1000-1099/1030-1039/1030/problemE.txt this is a correct solution, but verifier at 1000-1999/1000-1099/1030-1039/1030/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"math/bits"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReaderSize(os.Stdin, 1<<20)}
}
func (fs *FastScanner) nextInt64() int64 {
var sign int64 = 1
var val int64 = 0
c, err := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
c, err = fs.r.ReadByte()
if err != nil {
return 0
}
}
if c == '-' {
sign = -1
c, _ = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int64(c-'0')
c, err = fs.r.ReadByte()
if err != nil {
break
}
}
return val * sign
}
func main() {
in := NewFastScanner()
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
n := int(in.nextInt64())
w := make([]int, n)
for i := 0; i < n; i++ {
x := uint64(in.nextInt64())
w[i] = bits.OnesCount64(x)
}
cnt := [2]int64{1, 0}
par := 0
for i := 0; i < n; i++ {
par ^= (w[i] & 1)
cnt[par]++
}
totalEven := cnt[0]*(cnt[0]-1)/2 + cnt[1]*(cnt[1]-1)/2
var bad int64 = 0
for r := 0; r < n; r++ {
s := 0
mx := 0
lmin := r - 60 + 1
if lmin < 0 {
lmin = 0
}
for l := r; l >= lmin; l-- {
s += w[l]
if w[l] > mx {
mx = w[l]
}
if (s&1) == 0 && 2*mx > s {
bad++
}
}
}
ans := totalEven - bad
fmt.Fprintln(out, ans)
}
```