For problem statement at 1000-1999/1600-1699/1670-1679/1672/problemD.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1670-1679/1672/verifierD.go ends with All tests passed can you fix the verifier? 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)
a := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(reader, &a[i])
}
b := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(reader, &b[i])
}
seen := make([]int, n+1)
matched := make([]int, n+1)
j := -1
possible := true
for i := 0; i < n; i++ {
req := b[i]
if j >= 0 && j < n && a[j] == req && seen[req] > matched[req] {
matched[req]++
} else {
found := false
for j+1 < n {
j++
seen[a[j]]++
if a[j] == req {
matched[req]++
found = true
break
}
}
if !found {
possible = false
break
}
}
}
if possible {
fmt.Fprintln(writer, "YES")
} else {
fmt.Fprintln(writer, "NO")
}
}
}