ЕГЭ Информатика 2022: Разбор 17 задания (алгоритмы)

Это задание на программирование, появившееся в ЕГЭ 2022 года, требует составления алгоритма обработки числовой последовательности из текстового файла. Сложность возросла по сравнению с предыдущим годом за счёт добавления этапа чтения данных из файла.

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

Файл содержит последовательность целых чисел в диапазоне от -10000 до 10000 включительно. Необходимо определить и вывести:

  1. Количество пар элементов последовательности, в которых хотя бы одно число делится на 3.
  2. Максимальную сумму элементов таких пар.

Пара — два идущих подряд элемента последовательности.

Алгоритм решения

Предлагается следующий алгоритм:

  1. Открытие файла: Используется контекстный менеджер with open(…) as f: для автоматического закрытия файла после обработки. Это предотвращает ошибки и утечки ресурсов. Имя файла: 17.txt.
  2. Чтение данных и создание списка: Генератор списка эффективно считывает данные из файла построчно, преобразуя каждую строку в целое число и добавляя в список nums.

    with open('17.txt') as f:
        nums = [int(x) for x in f]
  3. Проверка пар и подсчёт: Список nums перебирается по индексам, начиная с 1. Каждый элемент сравнивается с предыдущим. Если хотя бы один из элементов делится на 3, их сумма добавляется в список sums.

    sums = []
    for i in range(1, len(nums)):
        if nums[i] % 3 == 0 or nums[i-1] % 3 == 0:
            sums.append(nums[i] + nums[i-1])
  4. Вывод результата: Выводится количество пар (длина списка sums) и максимальная сумма из списка sums с помощью функции max().

    print(len(sums), max(sums))

Реализация на Python

Полный код:

with open('17.txt') as f:
    nums = [int(x) for x in f]

sums = []
for i in range(1, len(nums)):
    if nums[i] % 3 == 0 or nums[i-1] % 3 == 0:
        sums.append(nums[i] + nums[i-1])

print(len(sums), max(sums))

Файл 17.txt должен находиться в той же директории, что и Python-скрипт.

Предложенный алгоритм эффективно решает задачу 17 демоверсии ЕГЭ по информатике 2022 года. Использование генератора списка и контекстного менеджера делает код компактным и надёжным. Важно проверить результаты работы программы на корректность, так как в ответах на сайте ФИПИ возможны ошибки.

Что будем искать? Например,программа