#include <iostream> // std::cout, std::fixed
#include <iomanip> // std::setprecision //данную библиотеку подключаем для того, чтобы установить количество знаков после запятой
#include <cmath> //данную библиотеку подключаем для того, чтобы была возможность извлечь корень
using namespace std;
int main()
{
int x1,x2,x3,x4,y1,y2,y3,y4,z1,z2,z3,z4;//координаты вершин пирамиды
double ab,bc,ac,as,bs,cs;//длины сторон треугольников в пирамиде
double P1,P2,P3,P4;//полупериметры треугольников
double S1,S2,S3,S4,s;//площади треугольников и площадь пирамиды
cin >> x1 >> y1>> z1 >> x2 >> y2 >> z2 >> x3 >> y3 >> z3 >> x4 >> y4 >> z4;
ab = sqrt(((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2)));//находим длину стороны АВ треугольника//аналогично для других сторон
bc = sqrt(((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)+(z2-z3)*(z2-z3)));
ac = sqrt(((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)+(z1-z3)*(z1-z3)));
as = sqrt(((x1-x4)*(x1-x4)+(y1-y4)*(y1-y4)+(z1-z4)*(z1-z4)));
bs = sqrt(((x2-x4)*(x2-x4)+(y2-y4)*(y2-y4)+(z2-z4)*(z2-z4)));
cs = sqrt(((x3-x4)*(x3-x4)+(y3-y4)*(y3-y4)+(z3-z4)*(z3-z4)));
P1 = (ab+bc+ac)*0.5;//находим полупериметр треугольника АВС//аналогично для других треугольников
P2 = (ab+bs+as)*0.5;
P3 = (bc+cs+bs)*0.5;
P4 = (ac+cs+as)*0.5;
S1 = sqrt(P1*(P1-ab)*(P1-bc)*(P1-ac));//пользуясь формулой Герона находим площадь треугольника АВС//аналогично для других треугольников
S2 = sqrt(P2*(P2-ab)*(P2-bs)*(P2-as));
S3 = sqrt(P3*(P3-bc)*(P3-cs)*(P3-bs));
S4 = sqrt(P4*(P4-ac)*(P4-cs)*(P4-as));
s = S1+S2+S3+S4;//находим общую площадь пирамиды, состоящую из четырех треугольников
cout << fixed << setprecision(1) << s << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAgIC8vIHN0ZDo6Y291dCwgc3RkOjpmaXhlZAojaW5jbHVkZSA8aW9tYW5pcD4gICAvLyBzdGQ6OnNldHByZWNpc2lvbiAvL9C00LDQvdC90YPRjiDQsdC40LHQu9C40L7RgtC10LrRgyDQv9C+0LTQutC70Y7Rh9Cw0LXQvCDQtNC70Y8g0YLQvtCz0L4sINGH0YLQvtCx0Ysg0YPRgdGC0LDQvdC+0LLQuNGC0Ywg0LrQvtC70LjRh9C10YHRgtCy0L4g0LfQvdCw0LrQvtCyINC/0L7RgdC70LUg0LfQsNC/0Y/RgtC+0LkgCiNpbmNsdWRlIDxjbWF0aD4gICAgLy/QtNCw0L3QvdGD0Y4g0LHQuNCx0LvQuNC+0YLQtdC60YMg0L/QvtC00LrQu9GO0YfQsNC10LwgINC00LvRjyDRgtC+0LPQviwg0YfRgtC+0LHRiyDQsdGL0LvQsCDQstC+0LfQvNC+0LbQvdC+0YHRgtGMINC40LfQstC70LXRh9GMINC60L7RgNC10L3RjAp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSAKewogICAgaW50IHgxLHgyLHgzLHg0LHkxLHkyLHkzLHk0LHoxLHoyLHozLHo0Oy8v0LrQvtC+0YDQtNC40L3QsNGC0Ysg0LLQtdGA0YjQuNC9INC/0LjRgNCw0LzQuNC00YsKICAgIGRvdWJsZSBhYixiYyxhYyxhcyxicyxjczsvL9C00LvQuNC90Ysg0YHRgtC+0YDQvtC9INGC0YDQtdGD0LPQvtC70YzQvdC40LrQvtCyINCyINC/0LjRgNCw0LzQuNC00LUKICAgIGRvdWJsZSBQMSxQMixQMyxQNDsvL9C/0L7Qu9GD0L/QtdGA0LjQvNC10YLRgNGLINGC0YDQtdGD0LPQvtC70YzQvdC40LrQvtCyIAogICAgZG91YmxlIFMxLFMyLFMzLFM0LHM7Ly/Qv9C70L7RidCw0LTQuCDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC60L7QsiDQuCDQv9C70L7RidCw0LTRjCDQv9C40YDQsNC80LjQtNGLCiAgICBjaW4gPj4geDEgPj4geTE+PiB6MSA+PiB4MiA+PiB5MiA+PiB6MiA+PiB4MyA+PiB5MyA+PiB6MyA+PiB4NCA+PiB5NCA+PiB6NDsKICAgIGFiID0gc3FydCgoKHgxLXgyKSooeDEteDIpKyh5MS15MikqKHkxLXkyKSsoejEtejIpKih6MS16MikpKTsvL9C90LDRhdC+0LTQuNC8INC00LvQuNC90YMg0YHRgtC+0YDQvtC90Ysg0JDQkiDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC60LAvL9Cw0L3QsNC70L7Qs9C40YfQvdC+INC00LvRjyDQtNGA0YPQs9C40YUg0YHRgtC+0YDQvtC9CiAgICBiYyA9IHNxcnQoKCh4Mi14MykqKHgyLXgzKSsoeTIteTMpKih5Mi15MykrKHoyLXozKSooejItejMpKSk7CiAgICBhYyA9IHNxcnQoKCh4MS14MykqKHgxLXgzKSsoeTEteTMpKih5MS15MykrKHoxLXozKSooejEtejMpKSk7CiAgICBhcyA9IHNxcnQoKCh4MS14NCkqKHgxLXg0KSsoeTEteTQpKih5MS15NCkrKHoxLXo0KSooejEtejQpKSk7CiAgICBicyA9IHNxcnQoKCh4Mi14NCkqKHgyLXg0KSsoeTIteTQpKih5Mi15NCkrKHoyLXo0KSooejItejQpKSk7CiAgICBjcyA9IHNxcnQoKCh4My14NCkqKHgzLXg0KSsoeTMteTQpKih5My15NCkrKHozLXo0KSooejMtejQpKSk7CiAgICBQMSA9IChhYitiYythYykqMC41Oy8v0L3QsNGF0L7QtNC40Lwg0L/QvtC70YPQv9C10YDQuNC80LXRgtGAINGC0YDQtdGD0LPQvtC70YzQvdC40LrQsCDQkNCS0KEvL9Cw0L3QsNC70L7Qs9C40YfQvdC+INC00LvRjyDQtNGA0YPQs9C40YUg0YLRgNC10YPQs9C+0LvRjNC90LjQutC+0LIKICAgIFAyID0gKGFiK2JzK2FzKSowLjU7CiAgICBQMyA9IChiYytjcyticykqMC41OwogICAgUDQgPSAoYWMrY3MrYXMpKjAuNTsKICAgIFMxID0gc3FydChQMSooUDEtYWIpKihQMS1iYykqKFAxLWFjKSk7Ly/Qv9C+0LvRjNC30YPRj9GB0Ywg0YTQvtGA0LzRg9C70L7QuSDQk9C10YDQvtC90LAg0L3QsNGF0L7QtNC40Lwg0L/Qu9C+0YnQsNC00Ywg0YLRgNC10YPQs9C+0LvRjNC90LjQutCwINCQ0JLQoS8v0LDQvdCw0LvQvtCz0LjRh9C90L4g0LTQu9GPINC00YDRg9Cz0LjRhSDRgtGA0LXRg9Cz0L7Qu9GM0L3QuNC60L7QsiAKICAgIFMyID0gc3FydChQMiooUDItYWIpKihQMi1icykqKFAyLWFzKSk7CiAgICBTMyA9IHNxcnQoUDMqKFAzLWJjKSooUDMtY3MpKihQMy1icykpOwogICAgUzQgPSBzcXJ0KFA0KihQNC1hYykqKFA0LWNzKSooUDQtYXMpKTsKICAgIHMgPSBTMStTMitTMytTNDsvL9C90LDRhdC+0LTQuNC8INC+0LHRidGD0Y4g0L/Qu9C+0YnQsNC00Ywg0L/QuNGA0LDQvNC40LTRiywg0YHQvtGB0YLQvtGP0YnRg9GOINC40Lcg0YfQtdGC0YvRgNC10YUg0YLRgNC10YPQs9C+0LvRjNC90LjQutC+0LIKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDEpIDw8IHMgPDwgZW5kbDsgCiAgICByZXR1cm4gMDsKfQ==