#include <bits/stdc++.h>
using namespace std;
inline int two(int x) { return 1 << x; }
inline long long TWO(int x) { return (long long)1 << x; }
template <class T>
void _Min(T &x, T y) {
  if (y < x || x == -1) x = y;
}
template <class T>
void Min(T &x, T y) {
  if (y < x) x = y;
}
template <class T>
void Max(T &x, T y) {
  if (y > x) x = y;
}
template <class T>
T _abs(T x) {
  return x > 0 ? x : -x;
}
template <class T>
T gcd(T a, T b) {
  return !b ? a : gcd(b, a % b);
}
const int maxn = 100010;
const int mod = 1000000007;
const double pi = acos(-1.0);
const double eps = 1e-8;
int main() {
  double w, h;
  int a;
  scanf("%lf%lf%d", &w, &h, &a);
  if (w < h) swap(w, h);
  if (a == 0 || a == 180) {
    return printf("%.8lf\n", w * h), 0;
  }
  if (a == 90) {
    return printf("%.8lf\n", h * h), 0;
  }
  if (a > 90) a = 180 - a;
  double ang = 1.0 * a / 180.0 * pi;
  double ans;
  if (ang - 2 * atan(h / w) < eps) {
    double A = 1 + 1 / (cos(ang));
    double B = tan(ang);
    double y = (w * B - A * h) / (B * B - A * A);
    double x = (w - B * y) / A;
    ans = w * h - x * x * tan(ang) - y * y * tan(ang);
  } else {
    ans = h * h / sin(ang);
  }
  printf("%.8lf\n", ans);
  return 0;
}
