For problem statement at 0-999/900-999/990-999/990/problemE.txt this is a correct solution, but verifier at 0-999/900-999/990-999/990/verifierE.go ends with all tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
var n, m, k int
fmt.Fscan(in, &n, &m, &k)
blocked := make([]int, m)
for i := 0; i < m; i++ {
fmt.Fscan(in, &blocked[i])
}
a := make([]int, k)
for i := 0; i < k; i++ {
fmt.Fscan(in, &a[i])
}
allowed := make([]int, 0, n-m)
j := 0
for i := 0; i < n; i++ {
if j < m && blocked[j] == i {
j++
} else {
allowed = append(allowed, i)
}
}
minCost := int64(-1)
for l := 1; l <= k; l++ {
curEnd := 0
cnt := 0
possible := true
for curEnd < n {
maxL := max(0, curEnd-l+1)
upper := min(n-1, curEnd)
if maxL > upper {
possible = false
break
}
idx := sort.Search(len(allowed), func(i int) bool { return allowed[i] > upper }) - 1
if idx < 0 || allowed[idx] < maxL {
possible = false
break
}
pmax := allowed[idx]
cnt++
curEnd = pmax + l
}
if possible && curEnd >= n {
cost := int64(cnt) * int64(a[l-1])
if minCost == -1 || cost < minCost {
minCost = cost
}
}
}
fmt.Println(minCost)
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
```