Помогите, пожалуйста, написать программу в Паскале! Задано 2n целых чисел. Требуется разбить их на пары, так, чтобы сумма произведений чисел в парах была как можно больше. Например, если заданы числа 1,2,3 и 4, то оптимальный с...

Помогите, пожалуйста, написать программу в Паскале!  Задано 2n целых чисел. Требуется разбить их на пары, так, чтобы сумма произведений чисел в парах была как можно больше. Например, если заданы числа 1,2,3 и 4, то оптимальный способ разбиения на пары -(1,2) и (3,4). В этом случае искомая сумма равна 14. Требуется написать программу, которая по заданному числу n (1 меньше или ровно n и n меньше или ровно 100) и набору из 2n чисел выдаст их оптимальное рабиение на пары. 
Гость
Ответ(ы) на вопрос:
Гость
var  n,i,j,c:integer;  mas:array[1..999] of integer; begin  readln(n);  for i:=1 to 2*n do   readln(mas[i]);  //Группируем массив в порядке возрастания   for i := 1 to 2*n-1 do    for j := 1 to 2*n-i do     if mas[j] > mas[j+1] then     begin      c := mas[j];      mas[j] := mas[j+1];      mas[j+1] := c;     end;  writeln('Оптимальные пары:');  for i:=1 to 2*n do  begin   if i mod 2 = 1 then    write(mas[i],' и ');   if i mod 2 = 0 then    writeln(mas[i]);  end; end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы