Дано 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

Animashka11 Animashka11    2   08.09.2019 08:50    3

Ответы
Anna45w456 Anna45w456  07.10.2020 00:31
//PascalABC.NET
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.

Дано n целых чисел. число называется красивым, если его можно разделить на 3 без остатка. вам нужн
Дано n целых чисел. число называется красивым, если его можно разделить на 3 без остатка. вам нужн
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика