#include<bits/stdc++.h>
#define dvd 100000000

using namespace std;

//https://mathworld.wolfram.com/Circle-CircleIntersection.html
double f(double r,double d){
  if(2*r <= d){return 0.0;}
  double ac=acos(d/(2.0*r)),res,subt;
  res=2.0*r*r*ac;
  subt=0.5*d;
  subt*=sqrt((4.0*r*r-d*d));
  return res-subt;
}

int main(){
  double r,h,d,res=0.0;
  double s1,s2,bh;
  cin >> r >> h >> d;
  bh=(h/(double)dvd);
  s1=f(r,d);
  for(int i=1;i<=dvd;i++){
    double cr=r*(((double)(dvd-i))/((double)dvd));
    s2=f(cr,d);
    res+=(s1+s2);
    s1=s2;
  }
  printf("%.12lf\n",res*bh/2.0);
}