For problem statement at 1000-1999/1100-1199/1160-1169/1165/problemD.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1160-1169/1165/verifierD.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for ; t > 0; t-- {
var n int
fmt.Fscan(in, &n)
d := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &d[i])
}
sort.Slice(d, func(i, j int) bool { return d[i] < d[j] })
x := d[0] * d[n-1]
ok := true
for i := 0; i < n; i++ {
if d[i]*d[n-1-i] != x {
ok = false
break
}
}
if ok {
divs := make([]int64, 0)
for i := int64(2); i*i <= x; i++ {
if x%i == 0 {
divs = append(divs, i)
if i != x/i {
divs = append(divs, x/i)
}
}
}
sort.Slice(divs, func(i, j int) bool { return divs[i] < divs[j] })
if len(divs) != n {
ok = false
} else {
for i := 0; i < n; i++ {
if divs[i] != d[i] {
ok = false
break
}
}
}
}
if ok {
fmt.Fprintln(out, x)
} else {
fmt.Fprintln(out, -1)
}
}
}