#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
double cross(complex<double> &a, complex<double> &b) {
  return abs(a.real() * b.imag() - a.imag() * b.real());
}
double area(int n) {
  vector<complex<double> > p;
  for (int i = 0; i < n; i++)
    p.push_back(exp(complex<double>(0, 2 * PI * i / n)));
  double side = abs(p[0] - p[1]);
  double h = sqrt(side * side - 1);
  for (auto &pi : p) pi /= side;
  h /= side;
  return n * cross(p[0], p[1]) * h / 6;
}
int main() {
  double ans = 0;
  for (int i = 0; i < 3; i++) {
    double l;
    cin >> l;
    l = l * l * l;
    ans += l * area(3 + i);
  }
  cout << fixed << setprecision(15) << ans << endl;
  return 0;
}
