
Тип 17 №61363
Файл содержит последовательность натуральных чисел, не превышающих 100 000. Назовём тройкой три идущих подряд элемента последовательности.
Определите количество троек, для которых выполняются следующие условия:
— ровно два числа в тройке четырёхзначные;
— хотя бы одно число в тройке делится на 3;
— сумма элементов тройки больше максимального элемента последовательности, запись которого заканчивается на 19. (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на 19.)
В ответе запишите два числа: сначала количество найденных троек, затем максимальную величину суммы элементов этих троек.
Скачать файл: Задание 17

Комментарии к коду решения:
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.
M = [int(x) for x in open('17.txt')]
A = [x for x in M if str(x)[-2:] == '19']
count = 0
maxi = 0
for i in range(0, len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if sum([len(str(abs(j))) == 4 for j in [x, y, z]]) == 2:
if sum([abs(j) % 3 == 0 for j in [x, y, z]]) >= 1:
if sum([x, y, z]) > max(A):
count += 1
maxi = max(maxi, x + y + z)
print(count, maxi)