#include <iostream>
#include <stdio.h>
#include <cmath>

using namespace std;

void solve()
{
	double a, l, x;
	while(cin >> a >> l >> x)
	{
		double s1 = a / 4 * sqrt((a + 2 * l) * (2 * l - a));
		double maxS2 = 0;
		for(double i = 0.00001; i < 1.0; i += 0.00001)
		{
			double len1 = i * (l + x);
			double len2 = (1.0 - i) * (l + x);
			double s = (l + len1 + len2) / 2.0;
			if(s * (s - l) * (s - len1) * (s - len2) < 0)
			{
				continue;
			}
			else
			{
				double s2 = sqrt(s * (s - l) * (s - len1) * (s - len2));
				if(maxS2 < s2)
				{
					maxS2 = s2;
				}
			}
		}
		printf("%6f\n", s1 + 2 * maxS2);
	}
}

int main()
{
	solve();
	return(0);
}