For problem statement at 0-999/700-799/710-719/717/problemD.txt this is a correct solution, but verifier at 0-999/700-799/710-719/717/verifierD.go ends with case 1 failed: expected 0.2900000 got 0.290000000
input:1 0
0.710
exit status 1 can you fix the verifier? package main
import (
"fmt"
)
func main() {
var n int64
var x int
if _, err := fmt.Scan(&n, &x); err != nil {
return
}
V := make([]float64, 128)
for i := 0; i <= x; i++ {
fmt.Scan(&V[i])
}
for length := 1; length < 128; length *= 2 {
for i := 0; i < 128; i += 2 * length {
for j := 0; j < length; j++ {
u := V[i+j]
v := V[i+length+j]
V[i+j] = u + v
V[i+length+j] = u - v
}
}
}
for i := 0; i < 128; i++ {
res := 1.0
base := V[i]
exp := n
for exp > 0 {
if exp%2 == 1 {
res *= base
}
base *= base
exp /= 2
}
V[i] = res
}
for length := 1; length < 128; length *= 2 {
for i := 0; i < 128; i += 2 * length {
for j := 0; j < length; j++ {
u := V[i+j]
v := V[i+length+j]
V[i+j] = u + v
V[i+length+j] = u - v
}
}
}
prob0 := V[0] / 128.0
ans := 1.0 - prob0
fmt.Printf("%.9f\n", ans)
}