** вход программы поступает последовательность из N натуральных чисел. Нужно выбрать из...

0 голосов
87 просмотров

На вход программы поступает последовательность из N натуральных чисел. Нужно выбрать из них произвольное количество чисел так, чтобы их сумма была максимальной и не делилась на 4. В результате программа должна вывести количество выбранных чисел и их сумму. Если получить требуемую сумму невозможно, в качестве ответа нужно выдать 0.
Входные данные:
На вход программе подаётся натуральное число N (N  1000), а затем N натуральных чисел, каждое из которых не превышает 10000.
Пример входных данных:
3
1
2
1
Выходные данные:
Программа должна вывести два числа: сначала количество выбранных чисел, а затем их сумму.
Пример выходных данных для приведённого примера входных данных:
2 3
паскаль


Информатика (50 баллов) | 87 просмотров
Дан 1 ответ
0 голосов

Var
  a, n, i, sum, c, min: integer;
 
begin
  sum := 0;
  c := 0;
  min := 10001;
  read(n);
  for i := 1 to n do begin
    read(a);
    sum := sum + a;
    c := c + 1;
    if(a < min) and (a mod 4 <> 0) then min := a;
  end;
  if(sum mod 4 = 0) and (min <> 10001) then begin sum := sum - min; c := c - 1; end;
  if(sum mod 4 = 0) then begin write(0); exit; end;
  writeln(c, ' ', sum);
 end.

(3.7k баллов)