#include <iostream>
#include <cmath>
using namespace std;
int main(){
int bMare = 0, bMica = 0, h = 0;
cin >> bMare, bMica, h;
float a = ((bMare+bMica)*h)/2;
/* daca nu se cer latuturie atunci am o teorie prin care s-ar putea afla laturile laterale opuse, baza mare se imparte in 3 segmente conform la inaltime, daca vom presupune ca portiunea egala cu baza mica este 2x atunci segmentele / laturile ramase vor fi x, caci pe altceva nu pot sa ma bazez, de-ar fi date si unghiurile.. astfel 2x va fi ipotenuza din triunghiul dreptunghic obtinut, primim relatia 3x^2=h, aceasta este doar teoria mea, nu este confirmata sau demonstrata, depinde de detinatorul intrebarii daca o va folosi sau nu, multumesc de intelegere :3 */
int p = bMare + bMica + 2 * ( sqrt(h/3));
cout << a << p;
return 0;
}