#include <stdio.h>
#include <algorithm>
#include <stdlib.h>
#include <vector>
#include <string>
#include <math.h>
#include <map>
#include <set>
using namespace std;


double a,b,c;

double d(double x){
  double p=a;
  p*=(a+b);
  return x-(p/x);
}

double P(double x){
  return (sqrt(a*a+x*x)*sqrt((x-d(x))*(x-d(x))+(a+b)*(a+b)));
}

double find(){
  double step=10000;
  double x0=0.25;

  while (fabs(step)>0.000001){
    while (P(x0)>P(x0+step)) x0+=step;
    step=-step/2;
  }

  return P(x0);
}

int main(){
  scanf("%lf%lf%lf", &a, &b, &c);
  if (fabs(a-c)>0.000001) {
    printf("0\n");
    return 0;
  }

  double res=find();
  printf("%.4lf\n", res);

  return 0;
}
