Алгоритм решения задания 15. Часть 4
Учимся решать 15 задания четвёртого типа
Читать
В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от -100000 до 100000 включительно.
Определите количество троек последовательности, в которых хотя бы один элемент является пятизначным числом и оканчивается на 43, а сумма квадратов элементов тройки не больше квадрата максимального элемента последовательности, являющегося пятизначным числом и оканчивающегося на 43.
В ответе запишите количество найденных троек, затем минимальную из сумм квадратов элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
def cons(num):
# Пятизначное
cond_1 = 10_000 <= abs(num) < 100_000
# Оканчивается на 43
cond_2 = abs(num) % 100 == 43
return cond_1 and cond_2
with open('1701.txt') as f:
data = list(map(int, f))
max_el = max(num for num in data if cons(num))
answer = []
for x, y, z in zip(data, data[1:], data[2:]):
sum_sq = x ** 2 + y ** 2 + z ** 2
if (cons(x) or cons(y) or cons(z))
and sum_sq <= max_el ** 2:
answer.append(sum_sq)
print(len(answer), min(answer))
