For problem statement at 1000-1999/1200-1299/1200-1209/1200/problemE.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1200-1209/1200/verifierE.go ends with all tests passed can you fix the verifier? package main
import (
"bufio"
"os"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
buf := make([]byte, 2*1024*1024)
scanner.Buffer(buf, 2*1024*1024)
if !scanner.Scan() {
return
}
var ans []byte
for scanner.Scan() {
w := scanner.Bytes()
if len(ans) == 0 {
ans = append(ans, w...)
continue
}
pi := make([]int, len(w))
for i := 1; i < len(w); i++ {
j := pi[i-1]
for j > 0 && w[i] != w[j] {
j = pi[j-1]
}
if w[i] == w[j] {
j++
}
pi[i] = j
}
L := len(ans)
if L > len(w) {
L = len(w)
}
sPrime := ans[len(ans)-L:]
j := 0
for i := 0; i < len(sPrime); i++ {
for j > 0 && sPrime[i] != w[j] {
j = pi[j-1]
}
if sPrime[i] == w[j] {
j++
}
}
ans = append(ans, w[j:]...)
}
writer := bufio.NewWriter(os.Stdout)
writer.Write(ans)
writer.WriteByte('\n')
writer.Flush()
}