← Home
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 =(")
	}
}