Условие: Тип 17 № 61363
• Статья подготовлена командой itpy
• Полный разбор задачи в Notion
Файл содержит последовательность натуральных чисел, не превышающих 100 000. Назовём тройкой три идущих подряд элемента последовательности.
Определите количество троек, для которых выполняются следующие условия:
— ровно два числа в тройке четырёхзначные;
— хотя бы одно число в тройке делится на 3;
— сумма элементов тройки больше максимального элемента последовательности, запись которого заканчивается на 19. (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на 19.)
В ответе запишите два числа: сначала количество найденных троек, затем максимальную величину суммы элементов этих троек.
Скачать файл: Задание 17
Решение через Python и комментарии к нему:
Комментарии к коду решения:
- M = [int(x) for x in open('17.txt')] - Создание списка M, содержащего все целочисленные значения из файла '17.txt'.
- A = [x for x in M if str(x)[-2:] == '19'] - Создание списка A, включающего только те значения из списка M, которые оканчиваются на 19.
- count = 0 - Инициализация счетчика count, для счета подходящих троек.
- maxi = 0 - Инициализация переменной maxi для хранения максимальной суммы троек.
- for i in range(0, len(M)-2): - Итерация по индексам i от 0 до len(M)-2.
- x, y, z = M[i], M[i+1], M[i+2] - Присвоение переменным x, y, z значений из списка M по индексам i, i+1, i+2.
- if sum([len(str(abs(j))) == 4 for j in [x, y, z]]) == 2: - Проверка, что ровно два из трех чисел x, y, z являются четырехзначными.
- if sum([abs(j) % 3 == 0 for j in [x, y, z]]) >= 1: - Проверка, что хотя бы одно из трех чисел делится на 3 без остатка.
- if sum([x, y, z]) > max(A): - Проверка, что сумма x, y, z больше максимального значения из списка A.
- count += 1 - Увеличение счетчика count на 1, если все условия выполнены.
- maxi = max(maxi, x + y + z) - Обновление значения переменной maxi.
- print(count, maxi) - Вывод значений счетчика count и переменной maxi.