For problem statement at 0-999/0-99/60-69/67/problemC.txt this is a correct solution, but verifier at 0-999/0-99/60-69/67/verifierC.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
var ti, td, tr, te int
var a, b string
fmt.Fscan(in, &ti, &td, &tr, &te, &a, &b)
if len(b) > len(a) {
a, b = b, a
ti, td = td, ti
}
aa := []byte(a)
bb := []byte(b)
m, n := len(aa), len(bb)
aIdx := make([]int, m)
for i, c := range aa {
aIdx[i] = int(c - 'a')
}
bIdx := make([]int, n)
for i, c := range bb {
bIdx[i] = int(c - 'a')
}
const INF int = 1 << 30
prev := make([]int, n+2)
cur := make([]int, n+2)
prev[0] = INF
prev[1] = 0
for j := 1; j <= n; j++ {
prev[j+1] = j * ti
}
width := n + 2
store := make([]int, 26*width)
var da [26]int
for i := 1; i <= m; i++ {
cur[0] = INF
cur[1] = i * td
db := 0
ai := aIdx[i-1]
for j := 1; j <= n; j++ {
bj := bIdx[j-1]
i1 := da[bj]
j1 := db
cost := tr
if ai == bj {
cost = 0
db = j
}
v := prev[j] + cost
if t := cur[j] + ti; t < v {
v = t
}
if t := prev[j+1] + td; t < v {
v = t
}
if i1 > 0 && j1 > 0 {
if t := store[bj*width+j1] + (i-i1-1)*td + te + (j-j1-1)*ti; t < v {
v = t
}
}
cur[j+1] = v
}
off := ai * width
copy(store[off:off+width], prev)
da[ai] = i
prev, cur = cur, prev
}
out := bufio.NewWriterSize(os.Stdout, 1<<20)
fmt.Fprint(out, prev[n+1])
out.Flush()
}