For problem statement at 0-999/400-499/420-429/425/problemC.txt this is a correct solution, but verifier at 0-999/400-499/420-429/425/verifierC.go ends with test 1: expected 1 got 2
exit status 1 can you fix the verifier? ```go
package main
import (
"bufio"
"io"
"os"
"strconv"
)
type FastScanner struct {
data []byte
idx int
n int
}
func NewFastScanner() *FastScanner {
data, _ := io.ReadAll(os.Stdin)
return &FastScanner{data: data, n: len(data)}
}
func (fs *FastScanner) NextInt() int {
for fs.idx < fs.n && (fs.data[fs.idx] < '0' || fs.data[fs.idx] > '9') {
fs.idx++
}
val := 0
for fs.idx < fs.n && fs.data[fs.idx] >= '0' && fs.data[fs.idx] <= '9' {
val = val*10 + int(fs.data[fs.idx]-'0')
fs.idx++
}
return val
}
func firstGreater(arr []int, x int) int {
l, r := 0, len(arr)
for l < r {
m := (l + r) >> 1
if arr[m] <= x {
l = m + 1
} else {
r = m
}
}
return arr[l]
}
func main() {
in := NewFastScanner()
n := in.NextInt()
m := in.NextInt()
s := in.NextInt()
e := in.NextInt()
a := make([]int, n)
for i := 0; i < n; i++ {
a[i] = in.NextInt()
}
pos := make([][]int, 100001)
for i := 1; i <= m; i++ {
x := in.NextInt()
pos[x] = append(pos[x], i)
}
k := s / e
if k > n {
k = n
}
if k > m {
k = m
}
if k == 0 {
w := bufio.NewWriterSize(os.Stdout, 1<<20)
w.WriteString("0")
w.Flush()
return
}
const INF = int(1e9)
dp := make([]int, k+1)
for i := 1; i <= k; i++ {
dp[i] = INF
}
best := make([]int, k+1)
for i := 1; i <= k; i++ {
best[i] = -1
}
maxLen := 0
for i := 1; i <= n; i++ {
x := a[i-1]
arr := pos[x]
if len(arr) == 0 {
continue
}
last := arr[len(arr)-1]
upper := maxLen + 1
if upper > k {
upper = k
}
if upper > i {
upper = i
}
for lenSub := upper; lenSub >= 1; lenSub-- {
prev := dp[lenSub-1]
if prev >= last {
continue
}
sum := i + last
if sum > best[lenSub] {
best[lenSub] = sum
}
left := firstGreater(arr, prev)
if left < dp[lenSub] {
dp[lenSub] = left
if lenSub > maxLen {
maxLen = lenSub
}
}
}
}
ans := 0
base := n + m
for i := 1; i <= k; i++ {
if best[i] >= 0 && i*e+base-best[i] <= s {
ans = i
}
}
w := bufio.NewWriterSize(os.Stdout, 1<<20)
w.WriteString(strconv.Itoa(ans))
w.Flush()
}
```