#include <bits/stdc++.h>
using namespace std;
double PI = 3.141592653589793;
long long int gcd(long long int a, long long int b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long int lcm(long long int a, long long int b) {
  return a * b / gcd(a, b);
}
long double chg_DegRad(double deg) { return deg * PI / 180.0; }
double chg_RadDeg(double rad) { return rad * 180.0 / PI; }
long long int CountDigit(long long int n) {
  long long int digit = 1;
  while ((n /= 10) != 0) digit++;
  return digit;
}
double dis(double xa, double ya, double xb, double yb) {
  return pow(pow(xa - xb, 2.0) + pow(ya - yb, 2.0), 0.5);
}
long double a, b, x;
bool question(double m, double K) {
  if (m >= 45)
    return K <= a * b * (b / tan(chg_DegRad(m))) / 2;
  else
    return K <= (a * a * b) - (a * a * (a * tan(chg_DegRad(m))) / 2);
}
long double binarySearch(int K) {
  long double ok = 0;
  long double ng = 90;
  while ((ng - ok) > 0.0000001) {
    long double m = (ok + ng) / 2;
    if (question(m, K))
      ok = m;
    else
      ng = m;
  }
  return ok;
}
int main() {
  cin >> a >> b >> x;
  cout << setprecision(10) << binarySearch(x) << endl;
  return 0;
}
