For problem statement at 0-999/0-99/90-99/98/problemC.txt this is a correct solution, but verifier at 0-999/0-99/90-99/98/verifierC.go ends with case 8 failed: expected 1953.00000000 got 1904.779443941
input:1953.000000 2514.000000 2410.000000
exit status 1 can you fix the verifier? package main
import (
"fmt"
"math"
)
func main() {
var a, b, l float64
if _, err := fmt.Scan(&a, &b, &l); err != nil {
return
}
f := func(theta float64) float64 {
return a*math.Sin(theta) + b*math.Cos(theta) - l*math.Sin(theta)*math.Cos(theta)
}
intervals := 10000
minW := l
for i := 0; i < intervals; i++ {
left := (math.Pi / 2) * float64(i) / float64(intervals)
right := (math.Pi / 2) * float64(i+1) / float64(intervals)
for j := 0; j < 80; j++ {
m1 := left + (right-left)/3.0
m2 := right - (right-left)/3.0
if f(m1) < f(m2) {
right = m2
} else {
left = m1
}
}
if f(left) < minW {
minW = f(left)
}
}
if minW > 1e-8 {
fmt.Printf("%.9f\n", minW)
} else {
fmt.Println("My poor head =(")
}
}