Объясню идею, с кодом я думаю ты сам справишься.
Воспользуемся теоремой Герона:
То есть требуется только перебрать 4 варианта:
a, b, c
a, b, d
a, c, d
b, c, d
Вычислить площадь для каждого и найти максимум из них.
function Geron(ar: array of real): real;
begin
var (a, b, c) := ar;
if (a + b > c) and (a + c > b) and (b + c > a) then begin
var p := (a + b + c) / 2;
Result := Sqrt(p * (p - a) * (p - b) * (p - c))
end
else
Result := 0
end;
var a := ReadArrReal(4);
var s := a.Combinations(3).Select(t -> Geron(t)).Max;
if s > 0 then
s.Print
Print('Таких треугольников нет')
end.
Объясню идею, с кодом я думаю ты сам справишься.
Воспользуемся теоремой Герона:
То есть требуется только перебрать 4 варианта:
a, b, c
a, b, d
a, c, d
b, c, d
Вычислить площадь для каждого и найти максимум из них.
function Geron(ar: array of real): real;
begin
var (a, b, c) := ar;
if (a + b > c) and (a + c > b) and (b + c > a) then begin
var p := (a + b + c) / 2;
Result := Sqrt(p * (p - a) * (p - b) * (p - c))
end
else
Result := 0
end;
begin
var a := ReadArrReal(4);
var s := a.Combinations(3).Select(t -> Geron(t)).Max;
if s > 0 then
s.Print
else
Print('Таких треугольников нет')
end.