Файл содержит последовательность натуральных чисел, не превышающих 100 000. Назовём тройкой три идущих подряд элемента последовательности.
Определите количество троек, для которых выполняются следующие условия:
— хотя бы два числа в тройке пятизначные;
— ровно одно число в тройке делится
— сумма элементов тройки больше максимального элемента последовательности, запись которого заканчивается
В ответе запишите два числа: сначала количество найденных троек, затем максимальную величину суммы элементов этих троек.
Ответ:
Приведём решение на языке Python.
a = [int(s) for s in open('17.txt')]
a123 = max([x for x in a if x % 1000 == 123])
count = 0
s3 = []
for i in range (len(a) - 2):
if ((a[i] + a[i+1] + a[i+2]) > a123):
if ((a[i] % 3 == 0) + (a[i + 1] % 3 == 0) + (a[i + 2] % 3 == 0)) == 1:
if (((len(str(a[i])) == 5) + (len(str(a[i + 1])) == 5) + (len(str(a[i + 2])) == 5))) > 1:
s3.append(a[i] + a[i+1] + a[i+2])
print(len(s3),max(s3))
В результате работы данного алгоритма при вводе данных из файла ответ — 336 253152.
Ответ: 336 253152.

