var
a, b, c, d: real;
procedure Plo(s: string; x, y, z: real);
var
sq: real;
begin
if ((y + z - x) > 0) and ((x + z - y) > 0) and ((x + y - z) > 0) then
begin
sq := 0.25 * (sqrt((x + y + z) * (y + z - x) * (x + z - y) * (x + y - z)));
writeln('Площадь треугольника со сторонами ', s, ' = ', sq:0:3);
end else writeln('Треугольник со сторонами ', s, ' не существует');
end;
begin
write('a=');readln(a);
write('b=');readln(b);
write('c=');readln(c);
write('d=');readln(d);
Plo('a,b,c', a, b, c);
Plo('a,b,d', a, b, d);
Plo('a,c,d', a, c, d);
Plo('b,c,d', b, c, d);
end.