For problem statement at 2000-2999/2000-2099/2050-2059/2052/problemJ.txt this is a correct solution, but verifier at 2000-2999/2000-2099/2050-2059/2052/verifierJ.go ends with Accepted (402 tests). can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter(os.Stdout)
defer w.Flush()
var T int
fmt.Fscan(r, &T)
for tc := 0; tc < T; tc++ {
var n, m, q int
fmt.Fscan(r, &n, &m, &q)
a := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(r, &a[i])
}
d := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(r, &d[i])
}
l := make([]int64, m)
for i := 0; i < m; i++ {
fmt.Fscan(r, &l[i])
}
t := make([]int64, q)
for i := 0; i < q; i++ {
fmt.Fscan(r, &t[i])
}
type task struct {
d, a int64
}
tasks := make([]task, n)
for i := 0; i < n; i++ {
tasks[i] = task{d[i], a[i]}
}
sort.Slice(tasks, func(i, j int) bool {
return tasks[i].d < tasks[j].d
})
pref := make([]int64, n+1)
slack := make([]int64, n)
for i := 0; i < n; i++ {
pref[i+1] = pref[i] + tasks[i].a
slack[i] = tasks[i].d - pref[i+1]
}
const INF int64 = 1 << 60
suffMin := make([]int64, n+1)
suffMin[n] = INF
for i := n - 1; i >= 0; i-- {
if slack[i] < suffMin[i+1] {
suffMin[i] = slack[i]
} else {
suffMin[i] = suffMin[i+1]
}
}
epPref := make([]int64, m+1)
for i := 0; i < m; i++ {
epPref[i+1] = epPref[i] + l[i]
}
ans := make([]int, q)
for i := 0; i < q; i++ {
currT := t[i]
k := sort.Search(n, func(idx int) bool {
return tasks[idx].d > currT
})
sumDone := pref[k]
leftFree := currT - sumDone
rightMin := INF
if k < n {
rightMin = suffMin[k]
}
avail := leftFree
if rightMin < avail {
avail = rightMin
}
cnt := sort.Search(m+1, func(idx int) bool {
return epPref[idx] > avail
})
ans[i] = cnt - 1
}
for i := 0; i < q; i++ {
if i > 0 {
fmt.Fprint(w, " ")
}
fmt.Fprint(w, ans[i])
}
if tc < T-1 {
fmt.Fprintln(w)
}
}
}
```