import std.stdio: readf, writeln; import std.math.algebraic: sqrt; import std.algorithm.comparison: max; const dx = [0, 0, -1, 1]; const dy = [-1, 1, 0, 0]; void main() { int x1, y1, x2, y2, x3, y3; readf("%d %d %d %d %d %d\n", x1, y1, x2, y2, x3, y3); double res = 0; foreach(a; 0..4) { const p1 = x1 + dx[a]; const q1 = y1 + dy[a]; foreach(b; 0..4) { const p2 = x2 + dx[b]; const q2 = y2 + dy[b]; const x = sqrt(cast(double)(sqr(p1 - p2) + sqr(q1 - q2))); foreach(c; 0..4) { const p3 = x3 + dx[c]; const q3 = y3 + dy[c]; const y = sqrt(cast(double)(sqr(p2 - p3) + sqr(q2 - q3))); const z = sqrt(cast(double)(sqr(p3 - p1) + sqr(q3 - q1))); const s = (x + y + z) / 2; res = max(res, sqrt(s * (s - x) * (s - y) * (s - z))); } } } writeln(res); } pragma(inline) long sqr(const long x) @safe @nogc { return x * x; }