For problem statement at 0-999/200-299/230-239/234/problemF.txt this is a correct solution, but verifier at 0-999/200-299/230-239/234/verifierF.go ends with All 100 tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func min(x, y int) int {
if x < y {
return x
}
return y
}
func main() {
reader := bufio.NewReader(os.Stdin)
var n, a, b int
if _, err := fmt.Fscan(reader, &n, &a, &b); err != nil {
return
}
h := make([]int, n+1)
for i := 1; i <= n; i++ {
fmt.Fscan(reader, &h[i])
}
dp := make([][2]int, a+1)
for i := range dp {
dp[i][0] = 1e9
dp[i][1] = 1e9
}
if h[1] <= a {
dp[h[1]][0] = 0
}
if h[1] <= b {
dp[0][1] = 0
}
S := h[1]
for i := 2; i <= n; i++ {
new_dp := make([][2]int, a+1)
for j := range new_dp {
new_dp[j][0] = 1e9
new_dp[j][1] = 1e9
}
S += h[i]
for r := 0; r <= a; r++ {
if dp[r][0] != 1e9 || dp[r][1] != 1e9 {
if r+h[i] <= a {
cost0 := dp[r][0]
cost1 := dp[r][1]
if cost1 != 1e9 {
cost1 += min(h[i-1], h[i])
}
new_dp[r+h[i]][0] = min(cost0, cost1)
}
if S-r <= b {
cost1 := dp[r][1]
cost0 := dp[r][0]
if cost0 != 1e9 {
cost0 += min(h[i-1], h[i])
}
new_dp[r][1] = min(cost1, cost0)
}
}
}
dp = new_dp
}
ans := int(1e9)
for r := 0; r <= a; r++ {
if dp[r][0] < ans {
ans = dp[r][0]
}
if dp[r][1] < ans {
ans = dp[r][1]
}
}
if ans == 1e9 {
fmt.Println("-1")
} else {
fmt.Println(ans)
}
}