program MaxProductPair;
const
N = 8;
var
A: array[1..N] of Integer;
i: Integer;
max1, max2, min1, min2: Integer;
prodMax, prodMin: LongInt;
begin
{ Example data }
A[1] := 3; A[2] := 9; A[3] := 1; A[4] := 7; A[5] := 8;
A[6] := 0; A[7] := 2; A[8] := 4;
{ Initialize }
max1 := -32768; max2 := -32768;
min1 := 32767; min2 := 32767;
{ Scan array }
for i := 1 to N do
begin
if A[i] > max1 then
begin
max2 := max1;
max1 := A[i];
end
else if A[i] > max2 then
max2 := A[i];
if A[i] < min1 then
begin
min2 := min1;
min1 := A[i];
end
else if A[i] < min2 then
min2 := A[i];
end;
prodMax := LongInt(max1) * max2;
prodMin := LongInt(min1) * min2;
if prodMax > prodMin then
writeln('Max product pair: ', max1, ' and ', max2,
' (product = ', prodMax, ')')
else
writeln('Max product pair: ', min1, ' and ', min2,
' (product = ', prodMin, ')');
end.
(*
run:
Max product pair: 9 and 8 (product = 72)
*)