#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
double a,b,c,d,f;//длины сторон треугольника
double S1,S2,SO;//площади теугольников и общая площадь соответственно
double P1,P2,p1,p2;//периметр и полупериметр соотвественно
double G1,G2;//выражение под корнем
cin>>a>>b>>c>>d>>f;
P1= a+b+f;//периметр первого треугольника
p1= P1/2;//полупериметр первого треугольника
P2= d+c+f;//периметр второго треугольника
p2= P2/2;//полупериметр второго реугольника
G1=p1*(p1-a)*(p1-b)*(p1-f);//выражение под корнем
S1=sqrt(G1);//пользуясь формулой Герона извлекакем корень
//аналогично для второго треугольника
G2=p2*(p2-d)*(p2-c)*(p2-f);
S2=sqrt(G2);
SO=S1+S2;//находим общую площадь фигуряб состоящую из двух теугольников
cout<<fixed<<setprecision(4)<<SO;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxpb21hbmlwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cglkb3VibGUgYSxiLGMsZCxmOy8v0LTQu9C40L3RiyDRgdGC0L7RgNC+0L0g0YLRgNC10YPQs9C+0LvRjNC90LjQutCwCglkb3VibGUgUzEsUzIsU087Ly/Qv9C70L7RidCw0LTQuCDRgtC10YPQs9C+0LvRjNC90LjQutC+0LIg0Lgg0L7QsdGJ0LDRjyDQv9C70L7RidCw0LTRjCDRgdC+0L7RgtCy0LXRgtGB0YLQstC10L3QvdC+Cglkb3VibGUgUDEsUDIscDEscDI7Ly/Qv9C10YDQuNC80LXRgtGAINC4INC/0L7Qu9GD0L/QtdGA0LjQvNC10YLRgCDRgdC+0L7RgtCy0LXRgdGC0LLQtdC90L3QvgoJZG91YmxlIEcxLEcyOy8v0LLRi9GA0LDQttC10L3QuNC1INC/0L7QtCDQutC+0YDQvdC10LwKCWNpbj4+YT4+Yj4+Yz4+ZD4+ZjsKCVAxPSBhK2IrZjsvL9C/0LXRgNC40LzQtdGC0YAg0L/QtdGA0LLQvtCz0L4g0YLRgNC10YPQs9C+0LvRjNC90LjQutCwCglwMT0gUDEvMjsvL9C/0L7Qu9GD0L/QtdGA0LjQvNC10YLRgCDQv9C10YDQstC+0LPQviDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC60LAKCVAyPSBkK2MrZjsvL9C/0LXRgNC40LzQtdGC0YAg0LLRgtC+0YDQvtCz0L4g0YLRgNC10YPQs9C+0LvRjNC90LjQutCwCglwMj0gUDIvMjsvL9C/0L7Qu9GD0L/QtdGA0LjQvNC10YLRgCDQstGC0L7RgNC+0LPQviAg0YDQtdGD0LPQvtC70YzQvdC40LrQsAoJRzE9cDEqKHAxLWEpKihwMS1iKSoocDEtZik7Ly/QstGL0YDQsNC20LXQvdC40LUg0L/QvtC0INC60L7RgNC90LXQvCAKCVMxPXNxcnQoRzEpOy8v0L/QvtC70YzQt9GD0Y/RgdGMINGE0L7RgNC80YPQu9C+0Lkg0JPQtdGA0L7QvdCwINC40LfQstC70LXQutCw0LrQtdC8INC60L7RgNC10L3RjAoJLy/QsNC90LDQu9C+0LPQuNGH0L3QviDQtNC70Y8g0LLRgtC+0YDQvtCz0L4g0YLRgNC10YPQs9C+0LvRjNC90LjQutCwCglHMj1wMioocDItZCkqKHAyLWMpKihwMi1mKTsKCVMyPXNxcnQoRzIpOwoJU089UzErUzI7Ly/QvdCw0YXQvtC00LjQvCDQvtCx0YnRg9GOINC/0LvQvtGJ0LDQtNGMINGE0LjQs9GD0YDRj9CxINGB0L7RgdGC0L7Rj9GJ0YPRjiDQuNC3INC00LLRg9GFINGC0LXRg9Cz0L7Qu9GM0L3QuNC60L7QsgoJY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbig0KTw8U087CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQ==