For problem statement at 0-999/100-199/110-119/119/problemB.txt this is a correct solution, but verifier at 0-999/100-199/110-119/119/verifierB.go ends with case 1 mismatch
expected: 40.000000000000000 99.000000000000000
got: 40.0000000000 99.0000000000
exit status 1 can you fix the verifier? package main
import (
"fmt"
"sort"
)
func main() {
var n, k int
if _, err := fmt.Scan(&n, &k); err != nil {
return
}
a := make([]int, n+1)
for i := 1; i <= n; i++ {
fmt.Scan(&a[i])
}
var q int
fmt.Scan(&q)
c := n / k
used := make([]bool, n+1)
minAvg := 1e9
maxAvg := -1e9
seenCards := make(map[string]bool)
for i := 0; i < q; i++ {
card := make([]int, c)
sum := 0
for j := 0; j < c; j++ {
fmt.Scan(&card[j])
sum += a[card[j]]
}
sort.Ints(card)
key := fmt.Sprintf("%v", card)
if !seenCards[key] {
seenCards[key] = true
for j := 0; j < c; j++ {
used[card[j]] = true
}
}
avg := float64(sum) / float64(c)
if avg < minAvg {
minAvg = avg
}
if avg > maxAvg {
maxAvg = avg
}
}
d := len(seenCards)
if d < k {
unused := make([]int, 0)
for i := 1; i <= n; i++ {
if !used[i] {
unused = append(unused, a[i])
}
}
sort.Ints(unused)
if len(unused) >= c {
sumMin := 0
sumMax := 0
for i := 0; i < c; i++ {
sumMin += unused[i]
sumMax += unused[len(unused)-1-i]
}
avgMin := float64(sumMin) / float64(c)
avgMax := float64(sumMax) / float64(c)
if avgMin < minAvg {
minAvg = avgMin
}
if avgMax > maxAvg {
maxAvg = avgMax
}
}
}
fmt.Printf("%.10f %.10f\n", minAvg, maxAvg)
}