#include <bits/stdc++.h>
#include <math.h>
using namespace std;
struct point{
double x,y;
point(double A,double B){
x=A,y=B;
}
point() = default;
};
struct triangle{
point a,b,c;
triangle(point A,point B,point C){
a=A,b=B,c=C;
}
triangle() = default;
};
struct line{
point point_A,point_B;
line(point A,point B){
point_A = A,point_B = B;
}
line() = default;
};
double getDistance(point P, line L){
int B=L.point_A.x-L.point_B.x,A=L.point_B.y-L.point_A.y,C=L.point_A.y*L.point_B.x-L.point_A.x*L.point_B.y;
return fabs(A*P.x+B*P.y+C)/sqrt(A*A+B*B);
}// TODO: 计算点P到直线L的距离
line L;point p;float h,l;
double getArea(triangle T){
p=T.a;L=line(T.b,T.c);
h=getDistance(p,L);
l=sqrt((T.b.x-T.c.x)*(T.b.x-T.c.x)+(T.b.y-T.c.y)*(T.b.y-T.c.y));
return h*l/2;// TODO: 计算三角形T的面积
}
int main(){
int x, y;
cin >> x >> y;
point a(x, y);
cin >> x >> y;
point b(x, y);
cin >> x >> y;
point c(x, y);
triangle T(a, b, c);
cout << fixed << setprecision(2) << getArea(T) << endl;
return 0;
}