For problem statement at 1000-1999/1500-1599/1590-1599/1593/problemG.txt this is a correct solution, but verifier at 1000-1999/1500-1599/1590-1599/1593/verifierG.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"os"
)
func parseInt(b []byte) int {
res := 0
for _, ch := range b {
res = res*10 + int(ch-'0')
}
return res
}
func writeInt(w *bufio.Writer, n int) {
if n == 0 {
w.WriteByte('0')
w.WriteByte('\n')
return
}
var buf [20]byte
i := 19
for n > 0 {
buf[i] = byte((n % 10) + '0')
n /= 10
i--
}
w.Write(buf[i+1:])
w.WriteByte('\n')
}
func main() {
scanner := bufio.NewScanner(os.Stdin)
const maxCapacity = 1024 * 1024 * 10
buf := make([]byte, maxCapacity)
scanner.Buffer(buf, maxCapacity)
scanner.Split(bufio.ScanWords)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
if !scanner.Scan() {
return
}
t := parseInt(scanner.Bytes())
for i := 0; i < t; i++ {
scanner.Scan()
s := scanner.Bytes()
n := len(s)
prefOdd := make([]int, n+1)
prefEven := make([]int, n+1)
for j := 0; j < n; j++ {
prefOdd[j+1] = prefOdd[j]
prefEven[j+1] = prefEven[j]
if s[j] == '[' || s[j] == ']' {
if (j & 1) == 0 {
prefOdd[j+1]++
} else {
prefEven[j+1]++
}
}
}
scanner.Scan()
q := parseInt(scanner.Bytes())
for j := 0; j < q; j++ {
scanner.Scan()
l := parseInt(scanner.Bytes())
scanner.Scan()
r := parseInt(scanner.Bytes())
oddCount := prefOdd[r] - prefOdd[l-1]
evenCount := prefEven[r] - prefEven[l-1]
diff := oddCount - evenCount
if diff < 0 {
diff = -diff
}
writeInt(writer, diff)
}
}
}
```