#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-14;
double A, B, X;
inline bool is_close(double a, double b) {
  double diff = b - a;
  return -1e-9 < diff && diff < 1e-9;
}
inline bool check(double angle) {
  if (angle < (double)45) {
    angle = (angle * (double)3.14159265359) / (double)180;
    double hip = A / cos(angle);
    double side = sqrt(hip * hip - A * A);
    return ((A * A * B) - ((A * A * side) / (double)2)) > X;
  } else {
    angle = (angle * (double)3.14159265359) / (double)180;
    double hip = B / sin(angle);
    double side = sqrt(hip * hip - B * B);
    return ((A * B * side) / (double)2) > X;
  }
}
void bs() {
  double lo = 0, hi = 90, result = 1e-7;
  while (lo <= hi) {
    double mi = (lo + hi) / (double)2;
    if (check(mi)) {
      result = mi;
      lo = mi + EPS;
    } else {
      hi = mi - EPS;
    }
  }
  printf("%.10lf\n", result);
}
void iterative() {
  if (is_close(A * A * B, X)) {
    printf("%.10lf\n", 1e-8);
    return;
  }
  double last;
  for (double i = 1e-6; i < (double)90; i += 1e-5) {
    if (!check(i)) {
      last = i;
      break;
    }
  }
  for (int i = 0; i < 100010; i++) {
    last -= 1e-8;
    if (check(last)) {
      printf("%.10lf\n", last);
      return;
    }
  }
}
int main() {
  scanf("%lf%lf%lf", &A, &B, &X);
  iterative();
  return 0;
}
