For problem statement at 0-999/800-899/800-809/802/problemF.txt this is a correct solution, but verifier at 0-999/800-899/800-809/802/verifierF.go ends with test 3 failed
input:1
3 1 3 2 4 1 1 3 1 4 2 2 3 3 0 1 0 0 2 4 2 3 3 0 2 3 1 1 1 4 4 1 1 4 1 4 0 1 3 0 0 0 0 3 2 1 4 0 0 2 2 0 1 1 0 0 2 3 4 4 2 4 4 3 0 3 3 3 2 1 2 0 2 2 4 4 0 0 3 4 0 2 4 2 3 0 3 4 1 1 3 2 0 1 2 1 0 4 2 4 4 2 1 1 4 1 0 3 2 3 0 3 2 4 4 2 2 3 2 1 1 1 1 4 3 1 1 2 2 3 0 3 1 0 0 2 2 4 3 3 4 1 0 0 4 0 4 3 2 0 2 3 4 1 3 3 0 2 2 0 4 0 1 2 1 0 2 0 1 1 1 4 3 1 4 4 3 0 2 1 0 2 2 2 3 0 1 4 2 2 1 0 1 3 4 0 1 3 0 3 4 3 0 1 4 4 1 0 0 2 4 4 4 0 2 2 0 2 0 1 1 0 2 0 2 2 4 3 2 4 0 3 0 4 4 2 4 0 3 0 4 4 1 3 4 4 0 3 4 2
expected: poisson got: uniform
exit status 1 can you fix the verifier? package main
import (
"bufio"
"fmt"
"math"
"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 ; T > 0; T-- {
var P, N int
if _, err := fmt.Fscan(in, &P, &N); err != nil {
return
}
var sumSq int64
var sumCube int64
outOfRange := false
for i := 0; i < N; i++ {
var x int64
fmt.Fscan(in, &x)
if !outOfRange && (x > int64(P) || x < -int64(P)) {
outOfRange = true
}
sumSq += x * x
sumCube += x * x * x
}
if outOfRange {
fmt.Fprintln(out, "poisson")
continue
}
m2 := float64(sumSq) / float64(N)
m3 := float64(sumCube) / float64(N)
varPoi := float64(P)
varUni := float64(P*(P+1)) / 3.0
if P == 2 {
if m3 > 0 {
fmt.Fprintln(out, "poisson")
} else {
fmt.Fprintln(out, "uniform")
}
continue
}
dPoi := math.Abs(m2 - varPoi)
dUni := math.Abs(m2 - varUni)
if math.Abs(dPoi-dUni) <= 1e-9 {
if m3 > 0 {
fmt.Fprintln(out, "poisson")
} else {
fmt.Fprintln(out, "uniform")
}
} else if dPoi < dUni {
fmt.Fprintln(out, "poisson")
} else {
fmt.Fprintln(out, "uniform")
}
}
}