#include <bits/stdc++.h>
using namespace std;
struct pair_hash {
  template <class T1, class T2>
  std::size_t operator()(const std::pair<T1, T2> &p) const {
    auto h1 = std::hash<T1>{}(p.first);
    auto h2 = std::hash<T2>{}(p.second);
    return h1 ^ h2;
  }
};
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long double w, h, a;
  cin >> w >> h >> a;
  a = min(a, 180.0 - a);
  if (a == 0 || a == 180) {
    cout << setprecision(18) << w * h << '\n';
    return 0;
  }
  if (w < h) swap(w, h);
  if (a == 90) {
    long double mina = min(w, h);
    cout << setprecision(18) << mina * mina << '\n';
    return 0;
  }
  if (((a * 3.14159265 / 180) + 0.0) > 2 * atan((h + 0.0) / (w + 0.0)) - 1e-8) {
    cout << setprecision(18) << h * h / sin((a * 3.14159265 / 180)) << "\n";
  } else {
    long double coseca, seca, sina, cosa, tana, cota;
    sina = sin(a * 3.14159265 / 180);
    cosa = cos(a * 3.14159265 / 180);
    tana = tan(a * 3.14159265 / 180);
    cota = 1.0 / tana;
    coseca = 1.0 / sina;
    seca = 1.0 / cosa;
    if ((w / h) > 50) {
      cout << setprecision(18) << abs(h * h * coseca) << '\n';
      return 0;
    } else if ((h / w) > 50) {
      cout << setprecision(18) << abs(w * w * coseca) << '\n';
      return 0;
    }
    long double dis1, dis2, dis3, dis4;
    dis1 = hypot(0, (h / 2) - ((w / 2) * (coseca - cota)));
    dis2 = hypot((w / 2) - (w / 2) * seca + (h / 2) * tana, 0);
    long double area1 = dis1 * dis2;
    dis3 = hypot(0, (h / 2) - (h / 2) * seca + (w / 2) * tana);
    dis4 = hypot((w / 2) - (h / 2) * (-cota + coseca), 0);
    long double area2 = dis3 * dis4;
    long double ans = w * h;
    cout << setprecision(18) << ans - area1 - area2 << '\n';
  }
  return 0;
}
