For problem statement at 1000-1999/1800-1899/1830-1839/1839/problemD.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1830-1839/1839/verifierD.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
if _, err := fmt.Fscan(reader, &t); err != nil {
return
}
for tc := 0; tc < t; tc++ {
var n int
fmt.Fscan(reader, &n)
c := make([]int, n+1)
for i := 1; i <= n; i++ {
fmt.Fscan(reader, &c[i])
}
dp := make([][]int, n+1)
for i := 0; i <= n; i++ {
dp[i] = make([]int, n+1)
for j := 0; j <= n; j++ {
dp[i][j] = -1
}
}
for i := 1; i <= n; i++ {
if i == 1 {
dp[i][0] = 1
} else {
dp[i][1] = 1
}
for p := 1; p < i; p++ {
if c[p] < c[i] {
cost := 1
if p == i-1 {
cost = 0
}
for j := cost; j <= p; j++ {
if dp[p][j-cost] != -1 {
val := dp[p][j-cost] + 1
if val > dp[i][j] {
dp[i][j] = val
}
}
}
}
}
}
ans := make([]int, n+1)
for k := 0; k <= n; k++ {
ans[k] = n
}
for i := 1; i <= n; i++ {
for j := 0; j <= i; j++ {
if dp[i][j] != -1 {
g := j
if i < n {
g++
}
if g <= n {
cost := n - dp[i][j]
if cost < ans[g] {
ans[g] = cost
}
}
}
}
}
for k := 1; k <= n; k++ {
if ans[k-1] < ans[k] {
ans[k] = ans[k-1]
}
}
for k := 1; k <= n; k++ {
if k > 1 {
fmt.Fprint(writer, " ")
}
fmt.Fprint(writer, ans[k])
}
fmt.Fprintln(writer)
}
}
```