#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const double pi = acos(-1.0);
inline double sqr(double a) { return a * a; }
inline bool zero(double a) { return fabs(a) < eps; }
inline int sgn(double x) { return x < -eps ? -1 : x > eps; }
struct Point {
  double x, y;
  Point(double _x = 0, double _y = 0) : x(_x), y(_y) {}
  Point operator+(const Point& r) const { return Point(x + r.x, y + r.y); }
  Point operator-(const Point& r) const { return Point(x - r.x, y - r.y); }
  double operator^(const Point& r) const { return x * r.y - y * r.x; }
  Point operator*(const double& r) const { return Point(x * r, y * r); }
  Point rotate(double ag) {
    return Point(x * cos(ag) - y * sin(ag), x * sin(ag) + y * cos(ag));
  }
  void input() { scanf("%lf %lf", &x, &y); }
  double len2() { return sqr(x) + sqr(y); }
  double len() { return sqrt(len2()); }
  double dist(Point r) { return ((*this) - r).len(); }
  double ang() { return atan2(y, x); }
  void output() { printf("%lf %lf\n", x, y); }
};
double xmult(Point p1, Point p2, Point p0) { return (p1 - p0) ^ (p2 - p0); }
Point crossLine(Point a, Point b, Point c, Point d) {
  double u = xmult(b, c, a), v = xmult(a, d, b);
  return Point((c.x * v + d.x * u) / (u + v), (c.y * v + d.y * u) / (u + v));
}
double areaPolygon(int n, Point* p) {
  double area = 0.0;
  for (int i = 0; i < n; ++i) {
    area += p[i] ^ p[(i + 1) % n];
  }
  return fabs(area) / 2.0;
}
double CPIA(Point a[], Point b[], int na, int nb) {
  Point p[10], tmp[10];
  a[na] = a[0], b[nb] = b[0];
  memcpy(p, b, sizeof(Point) * (nb + 1));
  for (int i = 0; i < na && nb > 2; ++i) {
    int sflag = sgn(xmult(a[i + 1], p[0], a[i])), eflag, tn;
    for (int j = tn = 0; j < nb; ++j, sflag = eflag) {
      if (sflag >= 0) tmp[tn++] = p[j];
      eflag = sgn(xmult(a[i + 1], p[j + 1], a[i]));
      if ((sflag ^ eflag) == -2)
        tmp[tn++] = crossLine(a[i], a[i + 1], p[j], p[j + 1]);
    }
    memcpy(p, tmp, sizeof(Point) * tn);
    nb = tn, p[nb] = p[0];
  }
  if (nb < 3) return 0.0;
  return areaPolygon(nb, p);
}
int main() {
  double w, h, a;
  cin >> w >> h >> a;
  Point p[40] = {Point(-w, -h), Point(w, -h), Point(w, h), Point(-w, h)};
  Point tp[40];
  for (int i = 0; i < 4; ++i) {
    tp[i] = p[i].rotate(a / 180 * pi);
  }
  printf("%.12lf\n", CPIA(p, tp, 4, 4) / 4);
  return 0;
}
