Дано n целых чисел. число называется "красивым", если его можно разделить на 3 без остатка. вам нужно выбрать таких k "красивых" чисел, чтобы их сумма была минимальна. необходимо вывести эту сумму. формат ввода: n k a[1] a[2] a[n] ограничения: 1< =n, k< =100 1< =a[i]< =1000 гарантируется, что "красивых" чисел всегда > = k. формат вывода: ans – минимальная сумма k "красивых" чисел. пример ввода: пример вывода: 18 7 4 3 2 3 6 1 12 6
var
b : array of integer;
m : integer;
begin
// Ввод данных
var n := ReadInteger('Введите число N всех чисел массива: ');
var k := ReadInteger('Введите число К "красивых" чисел: ');
writeln('Введите все числа в массиве');
var a := ReadArrInteger(n);
// Резервируем место для слагаемых
b := new integer[k];
// Просмотрим все данные числа
foreach var i in a do
// Выберем только кратные трем
if i mod 3 = 0 then begin
// Если есть свободное место, поместим туда
m := b.FindIndex(x -> x=0);
if m <> -1 then b[m] := i
else
// Если свободного места нет, найдем наибольший элемент
// и заменим его
begin
m := b.FindIndex(x -> (x>i) and (x=b.Max));
if m <> -1 then b[m] := i;
end;
end;
// Выведем сумму
write('Сумма элементов - ', b.Sum)
end.