Задание 17. Информатика. Статград 2023-1-1
- Просмотры: 354
- Изменено: 24 ноября 2024
Файл содержит последовательность целых чисел, по модулю не превышающих \(10~000\). Назовём парой два идущих подряд элемента последовательности. Определите количество таких пар, в которых запись ровно одного элемента заканчивается цифрой \(7\), а сумма квадратов элементов пары меньше, чем квадрат наименьшего из элементов последовательности, запись которых заканчивается цифрой \(7\). В ответе запишите два числа: сначала количество найденных пар, затем максимальную сумму квадратов элементов этих пар.
Решение:
Python
def only_7(t):
last_dig = [abs(x) % 10 for x in t]
return last_dig.count(7) == 1
file_desc = open('17.txt')
num_array = [int(x) for x in file_desc.readlines()]
min_el = min(filter(lambda x: abs(x) % 10 == 7, num_array))**2
temp = filter(only_7, zip(num_array, num_array[1:]))
sq_arr = [x[0]**2 + x[1]**2 for x in temp]
a = tuple(filter(lambda x: x < min_el, sq_arr))
print(len(a), max(a))
Ответ: \(671 \,\, 96731834\)