For problem statement at 0-999/200-299/250-259/258/problemD.txt this is a correct solution, but verifier at 0-999/200-299/250-259/258/verifierD.go ends with wrong answer on test 1
input: 2 1
1 2
1 2
expected: 0.500000
got: 0.5000000000
exit status 1 can you fix the verifier? package main
import (
"fmt"
"io"
"os"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
pos := 0
nextInt := func() int {
for pos < len(data) && (data[pos] < '0' || data[pos] > '9') {
pos++
}
val := 0
for pos < len(data) && data[pos] >= '0' && data[pos] <= '9' {
val = val*10 + int(data[pos]-'0')
pos++
}
return val
}
n := nextInt()
m := nextInt()
p := make([]int, n)
for i := 0; i < n; i++ {
p[i] = nextInt()
}
f := make([][]float64, n)
for i := 0; i < n; i++ {
f[i] = make([]float64, n)
for j := 0; j < n; j++ {
if p[i] > p[j] {
f[i][j] = 1.0
}
}
}
for t := 0; t < m; t++ {
a := nextInt() - 1
b := nextInt() - 1
for k := 0; k < n; k++ {
if k == a || k == b {
continue
}
v1 := (f[a][k] + f[b][k]) * 0.5
v2 := (f[k][a] + f[k][b]) * 0.5
f[a][k] = v1
f[b][k] = v1
f[k][a] = v2
f[k][b] = v2
}
f[a][b] = 0.5
f[b][a] = 0.5
}
ans := 0.0
for i := 0; i < n; i++ {
for j := i + 1; j < n; j++ {
ans += f[i][j]
}
}
fmt.Printf("%.10f\n", ans)
}