#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;
}