For problem statement at 0-999/300-399/370-379/371/problemD.txt this is a correct solution, but verifier at 0-999/300-399/370-379/371/verifierD.go ends with All 100 tests passed. can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
var parent []int
func find(i int) int {
if parent[i] == i {
return i
}
parent[i] = find(parent[i])
return parent[i]
}
func readInt(reader *bufio.Reader) int {
var res int
var b byte
var err error
for {
b, err = reader.ReadByte()
if err != nil {
return 0
}
if b >= '0' && b <= '9' {
res = int(b - '0')
break
}
}
for {
b, err = reader.ReadByte()
if err != nil || b < '0' || b > '9' {
break
}
res = res*10 + int(b-'0')
}
return res
}
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
n := readInt(reader)
capacity := make([]int, n+2)
for i := 1; i <= n; i++ {
capacity[i] = readInt(reader)
}
parent = make([]int, n+2)
for i := 1; i <= n+1; i++ {
parent[i] = i
}
water := make([]int, n+2)
m := readInt(reader)
for i := 0; i < m; i++ {
typeQuery := readInt(reader)
if typeQuery == 1 {
p := readInt(reader)
x := readInt(reader)
curr := find(p)
for x > 0 && curr <= n {
add := x
if capacity[curr]-water[curr] < add {
add = capacity[curr] - water[curr]
}
water[curr] += add
x -= add
if water[curr] == capacity[curr] {
parent[curr] = curr + 1
}
curr = find(curr)
}
} else {
k := readInt(reader)
fmt.Fprintln(writer, water[k])
}
}
}
```