Алгоритм решения задания 15. Часть 2
Учимся решать 15 задания второго типа
Читать
В файле содержится последовательность целых чисел. Её элементы по модулю не превышают 100000 включительно.
Определите количество троек элементов последовательности, в которых хотя бы один элемент оканчивается на 19 и является пятизначным числом, а сумма всех элементов больше квадрата минимального элемента последовательности, оканчивающегося на 19 и являющегося трёхзначным числом.
В ответе запишите количество найденных троек, затем минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
with open('1706.txt') as file:
data = [int(i) for i in file]
min_19 = min(i for i in data if len(str(abs(i))) == 3 and str(i)[-2:] == '19')
ans = []
for num1, num2, num3 in zip(data, data[1:], data[2:]):
u1 = len(str(abs(num1))) == 5 and str(num1)[-2:] == '19'
u2 = len(str(abs(num2))) == 5 and str(num2)[-2:] == '19'
u3 = len(str(abs(num3))) == 5 and str(num3)[-2:] == '19'
f1 = u1 + u2 + u3 >= 1
summ = num1 + num2 + num3
f2 = summ > min_19 ** 2
if f1 and f2:
ans.append(summ)
print(len(ans), min(ans))
