В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
sveta6729
sveta6729
06.01.2023 06:37 •  Информатика

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

Ответ:
vkristinav06
vkristinav06
10.07.2020 22:57
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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?