← Home
For problem statement at 1000-1999/1700-1799/1770-1779/1776/problemB.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1770-1779/1776/verifierB.go ends with Test 1 failed
Input:
9 18
44 105 130 325 393 517 692 759 819
Expected:156
Got:157

exit status 1 can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n int
	var h int64
	fmt.Fscan(reader, &n, &h)

	x := make([]int64, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(reader, &x[i])
	}

	if h == 0 {
		fmt.Println(0)
		return
	}

	M := make([][]int64, n)
	for i := 0; i < n; i++ {
		M[i] = make([]int64, n)
	}

	for length := 2; length <= n; length++ {
		for i := 0; i <= n-length; i++ {
			j := i + length - 1
			dist := x[j] - x[i]
			req := (dist + 1) / 2
			Z := int64(0)
			if h >= req {
				Z = h - req
			}
			maxM := int64(-1)
			for k := i; k < j; k++ {
				val := M[i][k] + M[k+1][j]
				if val > maxM {
					maxM = val
				}
			}
			M[i][j] = Z + maxM
		}
	}

	dp := make([]int64, n+1)
	dp[0] = 0
	for i := 1; i <= n; i++ {
		dp[i] = -1
		for j := 0; j < i; j++ {
			dist := x[i-1] - x[j]
			req := (dist + 1) / 2
			if req <= h {
				cost := h*int64(i-j) - M[j][i-1]
				if dp[i] == -1 || dp[j]+cost < dp[i] {
					dp[i] = dp[j] + cost
				}
			}
		}
	}

	fmt.Println(dp[n])
}
```