Это задание на программирование, появившееся в ЕГЭ 2022 года, требует составления алгоритма обработки числовой последовательности из текстового файла. Сложность возросла по сравнению с предыдущим годом за счёт добавления этапа чтения данных из файла.
Условие задачи
Файл содержит последовательность целых чисел в диапазоне от -10000 до 10000 включительно. Необходимо определить и вывести:
- Количество пар элементов последовательности, в которых хотя бы одно число делится на 3.
- Максимальную сумму элементов таких пар.
Пара — два идущих подряд элемента последовательности.
Алгоритм решения
Предлагается следующий алгоритм:
- Открытие файла: Используется контекстный менеджер with open(…) as f: для автоматического закрытия файла после обработки. Это предотвращает ошибки и утечки ресурсов. Имя файла: 17.txt.
- Чтение данных и создание списка: Генератор списка эффективно считывает данные из файла построчно, преобразуя каждую строку в целое число и добавляя в список nums.
with open('17.txt') as f: nums = [int(x) for x in f]
- Проверка пар и подсчёт: Список 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])
- Вывод результата: Выводится количество пар (длина списка 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 года. Использование генератора списка и контекстного менеджера делает код компактным и надёжным. Важно проверить результаты работы программы на корректность, так как в ответах на сайте ФИПИ возможны ошибки.