#include <bits/stdc++.h>
double distance(double x1, double y1, double x2, double y2) {
  double x = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
  return x;
}
double giveX1(double A, double h, double y) {
  double c = (y - (h / (2 * cos(A)))) / tan(A);
  return c;
}
double giveX2(double A, double w, double y) {
  double c = (y + (w / (2 * sin(A)))) / tan((3.14159265359 / 2 + A));
  return c;
}
double giveY1(double A, double h, double x) {
  double c = x * tan(A) + h / (2 * cos(A));
  return c;
}
double giveY2(double A, double w, double x) {
  double c = x * tan((3.14159265359 / 2 + A)) - w / (2 * sin(A));
  return c;
}
int main() {
  double h, w, A, sum, P1, P2, P3, P4;
  bool flag = true;
  double eps = 0.000000000000000001;
  double pi = 3.14159265359;
  scanf("%lf", &w);
  scanf("%lf", &h);
  scanf("%lf", &A);
  if (h > w) {
    double tmp = h;
    h = w;
    w = tmp;
  }
  if (A > 90) A = 180 - A;
  if (A == 0) {
    printf("%.10lf\n", h * w);
    flag = false;
  }
  if (A == 90) {
    printf("%.10lf\n", h * h);
    flag = false;
  }
  A = A * pi / 180;
  P1 = giveX1(A, h, h / 2);
  P2 = giveX1(A, h, -h / 2);
  if (fabs(P2 - (-w / 2)) > eps && P2 < -w / 2) {
    P2 = giveY1(A, h, -w / 2);
    P3 = giveY2(A, w, -w / 2);
    P4 = giveX2(A, w, -h / 2);
    sum = w * h - ((P1 + w / 2) * (h / 2 - P2) + (P3 + h / 2) * (P4 + w / 2));
    if (flag) printf("%.10lf", sum);
  } else {
    sum = 2 * (-P1 * h + (P1 - P2) * h / 2);
    if (flag) printf("%.10lf", sum);
  }
  return 0;
}
