How to find a pair with maximum product from int array in Pascal

1 Answer

0 votes
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)

*)



answered Dec 26, 2025 by avibootz
...