﻿const
  m = 20;

type
  RealArr = array[1..m] of real;

procedure RandFillArrReal(var a: RealArr; n: integer);
var
  i: integer;
begin
  for i := 1 to n do
    a[i] := Random * 100
end;

procedure PrintArrReal(const a: RealArr; n: integer);
var
  i: integer;
begin
  for i := 1 to n do
    Write(a[i]:7:2);
  Writeln
end;

var
  X, Y: RealArr;
  N, I: integer;
  P, K: real;

begin
  write('N = ');
  readln(N);
  
  Randomize;
  
  RandFillArrReal(X, n);
  Writeln('Before:');
  Write('X:');
  PrintArrReal(X, n);
  
  RandFillArrReal(Y, n);
  Write('Y:');
  PrintArrReal(Y, n);
  Writeln;
  
  P := 1.0;
  for I := 1 to N do
    if X[I] < Y[I] then
    begin
      P := P * Y[I];
      K := X[I];
      X[I] := Y[I];
      Y[I] := K;
    end;
    
  Writeln('After:');
  
  Write('X:');
  PrintArrReal(X, n);
  
  Write('Y:');
  PrintArrReal(Y, n);
  Writeln;
  
  Write('Proizvedenie novykh komponent X: ', P:8:3);
  Readln;
end.