import java.io.*; import java.util.*; public class Magical { private static final double EPS = 1.0e-6; private static final Scanner cin = new Scanner(System.in); public static void main(String[] args) { while(true) { double a = (double)(cin.nextInt()); double b = (double)(cin.nextInt()); double s = (double)(cin.nextInt()); if(a == 0.0 && b == 0.0 && s == 0.0) { break; } System.out.println(doit(a, b, s) * 4.0); } } private static double doit(double a, double b, double s) { double hi = (a * a + b * b) / 1.0; double lo = (a * a + b * b) / 4.0; while(hi - lo >= EPS) { double rsq = (hi + lo) / 2.0; if(area(a, b, rsq) > s) { hi = rsq; } else { lo = rsq; } } return (hi + lo) / 2.0; } private static double area(double a, double b, double rsq) { double x1 = a / 1.0; double y1 = b / 1.0; double x2 = a / 2.0; double y2 = b / 2.0; double x3 = Math.sqrt(rsq - y2 * y2); double y3 = Math.sqrt(rsq - x2 * x2); double x4 = Math.sqrt(rsq - y1 * y1); double y4 = Math.sqrt(rsq - x1 * x1); double x5 = (x3 <= x1) ? x3 : x1; double y5 = (x3 <= x1) ? y2 : y4; double x6 = (y3 <= y1) ? x2 : x4; double y6 = (y3 <= y1) ? y3 : y1; double s = 0.0; s += Math.atan(y6 / x6) * rsq; s -= Math.atan(y5 / x5) * rsq; s -= x5 * y6 - x6 * y5; s += (x5 - x2) * (y6 - y2) - (x6 - x2) * (y5 - y2); s += x2 * (y5 - y2); s += y2 * (x6 - x2); return s * 2.0; } }