#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <cfloat>
#include <stack>
#include <queue>
#include <vector>
#include <string>
#include <iostream>
typedef long long int ll;
typedef unsigned long long int ull;
#define BIG_NUM 2000000000
#define MOD 1000000007
#define EPS 0.000000001
using namespace std;

double calc(double a,double b,double c){
	double s = (a+b+c)/2;
	return sqrt(s*(s-a)*(s-b)*(s-c));
}

void func(double a,double l,double x){

	double tmp = (l+x)/2;

	printf("%.10lf\n",calc(a,l,l)+calc(tmp,tmp,l)*2);
}


int main(){

	double a,l,x;

	while(scanf("%lf %lf %lf",&a,&l,&x) != EOF){
		func(a,l,x);
	}
}