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

для передачи сообщения по открытому каналу связи шифровальщики придумали сложный шифр. шифр состоит из n различных чисел, записанных в одну строку через пробелы. дешифрованное сообщение состоит из k чисел, которые являются номерами исходных чисел, разбивающих исходное сообщение на k частей (подпоследовательностей), так что сумма минимумов каждой подпоследовательности будет максимальна.

итак, от вас требуется написать программу, которая выполняет дешифровку заданного шифра.
формат ввода

первая строка входного файла содержит два разделенных пробелом натуральных числа n и к (1 ≤ k < n ≤ 300).

вторая строка входного файла содержит зашифрованное сообщение –n разделенных пробелом целых различных натуральных чисел а1, а2, а3… аn (1 ≤ ai ≤ 10).
формат вывода

выходной файл в первой строке содержит максимальную сумму к слагаемых, которые являются минимумами каждой части разбиения последовательности на k частей.

во второй строке выходного файла содержится дешифрованное сообщение из разделенных пробелом к натуральных чисел – номеров чисел в последовательности, которые завершают каждую из подпоследовательностей зашифрованного сообщения.

Показать ответ
Ответ:
zugor55
zugor55
27.01.2022 17:23

const

 n = 3;

var

 a: array[1..n, 1..n] of integer;

 i, j, k, sum, sum2, x: integer;

begin

 sum := 0;

 sum2 := 0;

 randomize;

 writeln('Исходный массив');

 for i := 1 to n do

 begin

   for j := 1 to n do

   begin

     a[i, j] := 1 + random(50);

     write(a[i, j]:4);

     sum := sum + a[i, j];

     if a[i, j] mod 3 = 0 then

       sum2 := sum2 + a[i, j]

   end;

   writeln;

 end;

 Writeln('Сумма всех элементов массива: ', sum);

 Writeln('Сумма всех элементов массива кратных 3: ', sum2);  

end.

0,0(0 оценок)
Ответ:
arturpushkin202453
arturpushkin202453
11.04.2020 09:06

var

 a, b, c, v: integer;  

 s, d1, d2: real;

begin

 Writeln('Введите А: ');

 Read(a);

 Writeln('Введите Б: ');

 Read(b);

 Writeln('Введите C: ');

 Read(c);

 V := a * b * c;

 Writeln('Результат "V:=a*b*c" = ', V);

 Writeln('Введите D1: ');

 Read(d1);

 Writeln('Введите D2: ');

 Read(d2);

 s := d1 * (d2 / 2);

 Writeln('Результат "s:=d1*(d2/2)" = ', s);

end.

Более простой вариант:

begin

 var (a,b,c):= ReadInteger3('Введите А B C: ');

 Println('Результат :', a*b*c);

 var (d1,d2):=ReadReal2('Введите D1 D1: ');

 Println('Результат: ', d1*(d2/2));

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота