For problem statement at 0-999/300-399/360-369/366/problemE.txt this is a correct solution, but verifier at 0-999/300-399/360-369/366/verifierE.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func max(a, b int) int {
if a > b {
return a
}
return b
}
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Split(bufio.ScanWords)
scanner.Buffer(make([]byte, 1024*1024), 64*1024*1024)
scanInt := func() int {
scanner.Scan()
res := 0
for _, b := range scanner.Bytes() {
res = res*10 + int(b-'0')
}
return res
}
n := scanInt()
m := scanInt()
k := scanInt()
s := scanInt()
minS := make([]int, k+1)
maxS := make([]int, k+1)
minD := make([]int, k+1)
maxD := make([]int, k+1)
for i := 1; i <= k; i++ {
minS[i] = 1e9
maxS[i] = -1e9
minD[i] = 1e9
maxD[i] = -1e9
}
for i := 1; i <= n; i++ {
for j := 1; j <= m; j++ {
v := scanInt()
S := i + j
D := i - j
if S < minS[v] {
minS[v] = S
}
if S > maxS[v] {
maxS[v] = S
}
if D < minD[v] {
minD[v] = D
}
if D > maxD[v] {
maxD[v] = D
}
}
}
ans := 0
if s > 0 {
prev := scanInt()
for i := 1; i < s; i++ {
curr := scanInt()
ans = max(ans, maxS[prev]-minS[curr])
ans = max(ans, maxS[curr]-minS[prev])
ans = max(ans, maxD[prev]-minD[curr])
ans = max(ans, maxD[curr]-minD[prev])
prev = curr
}
}
fmt.Println(ans)
}