For problem statement at 1000-1999/1100-1199/1100-1109/1107/problemE.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1100-1109/1107/verifierE.go ends with case 15 failed
input:
3
cba
1 10 5
expected:
11
got:
3
exit status 1 can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var n int
fmt.Fscan(reader, &n)
var s string
fmt.Fscan(reader, &s)
a := make([]int64, n+1)
for i := 1; i <= n; i++ {
fmt.Fscan(reader, &a[i])
}
for i := 1; i <= n; i++ {
for j := 1; j < i; j++ {
if a[j]+a[i-j] > a[i] {
a[i] = a[j] + a[i-j]
}
}
}
dp := make([][][]int64, n)
for i := 0; i < n; i++ {
dp[i] = make([][]int64, n)
for j := 0; j < n; j++ {
dp[i][j] = make([]int64, n)
for k := 0; k < n; k++ {
dp[i][j][k] = -1
}
}
}
var solve func(l, r, c int) int64
solve = func(l, r, c int) int64 {
if l > r {
return 0
}
if dp[l][r][c] != -1 {
return dp[l][r][c]
}
res := solve(l, r-1, 0) + a[c+1]
for i := l; i < r; i++ {
if s[i] == s[r] {
val := solve(i+1, r-1, 0) + solve(l, i, c+1)
if val > res {
res = val
}
}
}
dp[l][r][c] = res
return res
}
fmt.Println(solve(0, n-1, 0))
}