#include <bits/stdc++.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;
};
double getArea(triangle T){
// TODO: 计算三角形T的面积
/*本题实际上是两点距离于点到直线距离两者的结合,在这里
我将计算这两者的直并套用三角形面积公式,数学水平好的同学
可能有更好的解法*/
double ret;//定义结果变量
double a=T.a.x-T.b.x;
double b=T.a.y-T.b.y;
double dst=sqrt(a*a+b*b);//计算A、B两点的距离
if(T.a.x==T.b.x){
double vec=fabs(T.a.x-T.c.x);
ret=dst*vec/2;
//(特殊情况)如果直线AB垂直于x轴,则计算C到AB的距离,套用三角形面积公式
return ret;
}
double k=(T.a.y-T.b.y)/(T.a.x-T.b.x);
double sq=sqrt(k*k+1);
double tal=(fabs(-k*T.c.x+T.c.y+T.a.x*k-T.a.y))/sq;
//(一般情况)计算C到AB的距离,套用三角形面积公式
ret=dst*tal/2;
return ret;
}
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;
}