#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 ax = T.a.x, ay = T.a.y;
double bx = T.b.x, by = T.b.y;
double cx = T.c.x, cy = T.c.y;
double ab = hypot(ax - bx, ay - by);
// AB竖直,x = ax,h = |cx- ax|
if (bx == ax) {
double h = fabs(cx - ax);
return 0.5 * ab * h;
}
// AB水平,y = ay,h = |cy-ay|
if (by == ay) {
double h = fabs(cy - ay);
return 0.5 * ab * h;
}
// 一般情况
double k = (by - ay) / (bx - ax);
double b = ay - k * ax;
double h = fabs(k * cx + b - cy) / sqrt(1 + k * k);
return 0.5 * ab * h;
}
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;
}