fun main(args: Array<String>) {
    solve(java.util.Scanner(System.`in`))
}

fun f(a: Int, b: Int, theta: Double): Double {
    val rad = theta / 180.0 * Math.PI
    val result = if (a * Math.tan(rad) <= b) {
        a * a * b - a * a * (a * Math.tan(rad)) / 2.0
    } else {
        a * b * (b * Math.tan(0.5 * Math.PI - rad)) / 2.0
    }
//    println("($a, $b, $theta) = $result")
    return result
}


fun solve(sc: java.util.Scanner) {
    val A = sc.nextInt()
    val B = sc.nextInt()
    val X = sc.nextInt()

    var ok = 0.0
    var ng = 90.0
    while (ok + 0.0000001 < ng) {
        val mid = (ok + ng) / 2.0
        if (f(A, B, mid) >= X) {
            ok = mid
        } else {
            ng = mid
        }
    }
    print("%f".format(ok))
}
