#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000100;
const int INF = 1e9 + 10;
const double Pi = acos(-1.0);
const double EPS = 1e-10;
struct Point {
  double x, y;
  friend Point operator-(Point A, Point B) { return {A.x - B.x, A.y - B.y}; }
  friend double operator*(Point A, Point B) { return A.x * B.y - A.y * B.x; }
  void debug() { printf("x=%.2f y=%.2f\n", x, y); }
  friend bool operator==(Point A, Point B) {
    return fabs(A.x - B.x) < EPS && fabs(A.y - B.y) < EPS;
  }
};
Point A, B, C, D;
Point At, Bt, Ct, Dt;
double w, h;
double a;
Point Inter(Point A, Point B, Point C, Point D) {
  double area1 = fabs((B - A) * (C - A));
  double area2 = fabs((B - A) * (D - A));
  double x = (area1 * D.x + area2 * C.x) / (area1 + area2);
  double y = (area1 * D.y + area2 * C.y) / (area1 + area2);
  return {x, y};
}
double dist(Point A, Point B) {
  double tx = A.x - B.x, ty = A.y - B.y;
  return sqrt(tx * tx + ty * ty);
}
Point rot(Point A, double a) {
  double p = sqrt(A.x * A.x + A.y * A.y);
  double th = atan(A.y / A.x);
  if (A.x < -EPS) th += Pi;
  th += a;
  return {p * cos(th), p * sin(th)};
}
int judge() {
  if (Dt * B > EPS) return 1;
  return 0;
}
void work() {
  Point X = Inter(A, B, At, Bt);
  Point Y = Inter(A, B, Ct, Dt);
  double res = (h * 2) * dist(X, Y);
  printf("%.9f\n", res + EPS);
}
void solve() {
  a = Pi * 2 * a / 360;
  w /= 2;
  h /= 2;
  A = {-w, h};
  B = {w, h};
  C = {-w, -h};
  D = {w, -h};
  At = rot(A, a);
  Bt = rot(B, a);
  Ct = rot(C, a);
  Dt = rot(D, a);
  int jud = judge();
  if (jud == 0) {
    work();
    return;
  }
  Point X, Y;
  double cut = 0;
  if (A == Bt && B == Dt || fabs(a) < EPS)
    ;
  else {
    X = Inter(A, C, At, Bt);
    Y = Inter(A, B, At, Bt);
    cut += fabs(A.y - X.y) * fabs(A.x - Y.x) / 2;
  }
  if (B == Dt && A == Bt || fabs(a) < EPS)
    ;
  else {
    X = Inter(Bt, Dt, A, B);
    Y = Inter(B, D, Bt, Dt);
    cut += dist(B, X) * dist(B, Y) / 2;
  }
  double res = (w * 2) * (h * 2);
  res -= cut * 2;
  printf("%.9f\n", res + EPS);
}
int main() {
  int ta = 0;
  while (cin >> w >> h >> ta) {
    ta %= 180;
    if (ta > 90) ta = 180 - ta;
    if (w < h) swap(w, h);
    a = ta;
    solve();
  }
  return 0;
}
