Задание 17 - Информатика

← Вернуться к списку заданий

Условие задачи

Задание Демо 2022

B файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите количество пар последовательности, в которых хотя бы одно число делится на 3, а сумма элементов пары не более максимального элемента последовательности, кратного 3. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.


 

Ответ: 2439 998

Комментарий

PascalPython

var a,i,k,maxch,maxsum:integer;

    mas:array of integer;

begin

  Assign(Input,'17_demo22.txt');

  mas:= new integer[0];

  maxch:=-11000;

  maxsum:=-22000;

  while not eof do

  begin

    readln(a);

    mas:= mas + arr(a);

    if abs(a) mod 3 = 0 then

      maxch:= max(maxch,a);

  end;

  For i:=0 to length(mas)-2 do

  begin

    if ((abs(mas[i]) mod 3 = 0) or (abs(mas[i+1]) mod 3 = 0)) and (mas[i]+mas[i+1] <= maxch) then

    begin

      k += 1;

      maxsum:= max(maxsum,mas[i]+mas[i+1]);

    end;

  end;

  println(k,maxsum);

end.


 

f = open('17_demo22.txt')

mas = []

maxch = -11000

for s in f:

    ch = int(s)

    mas.append(ch)

    if abs(ch) % 3 == 0:

        maxch = max(maxch,ch)

k = 0

maxsum = -22000

for i in range(len(mas)-1):

    if ((abs(mas[i]) % 3 == 0) or (abs(mas[i+1] % 3 == 0))) and (mas[i]+mas[i+1] <= maxch):

        k += 1

        maxsum = max(maxsum,mas[i]+mas[i+1])

print(k,maxsum)

Открываем файл, считываем все значения в массив. Одновременно ищем максимальное значение которое делится на 3. Проходимся по массиву проверяя i-тый и i+1 элементы. Если хотя-бы один из них делится на 3 и сумма пары меньше максимального значения делящегося на три, то счётчик увеличиваем на единицу и проверяем сумму на максимальность.

Похожие задания

Задание 17 Задание 17 Задание 17 Задание 17 Задание 17