For problem statement at 1000-1999/1400-1499/1450-1459/1450/problemF.txt this is a correct solution, but verifier at 1000-1999/1400-1499/1450-1459/1450/verifierF.go ends with case 4 failed: runtime error: exit status 2
panic: runtime error: index out of range [3] with length 3
goroutine 1 [running]:
main.main()
/tmp/build-1435007365/solution.go:28 +0x5a4
input:
1
2
0 3
exit status 1 can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
if _, err := fmt.Fscan(in, &t); err != nil {
return
}
for tc := 0; tc < t; tc++ {
var n int
fmt.Fscan(in, &n)
a := make([]int, n)
cnt := make([]int, n+1)
maxCnt := 0
for i := 0; i < n; i++ {
fmt.Fscan(in, &a[i])
cnt[a[i]]++
if cnt[a[i]] > maxCnt {
maxCnt = cnt[a[i]]
}
}
if 2*maxCnt > n+1 {
fmt.Fprintln(out, -1)
continue
}
if n == 1 {
fmt.Fprintln(out, 0)
continue
}
S := 0
M := make([]int, n+1)
for i := 0; i < n-1; i++ {
if a[i] != a[i+1] {
S++
M[a[i]]++
M[a[i+1]]++
}
}
D := 0
for c := 1; c <= n; c++ {
if cnt[c] > 0 {
val := S - M[c] - (n + 1 - 2*cnt[c])
if val > D {
D = val
}
}
}
fmt.Fprintln(out, n-1-S+D)
}
}
```