Задание 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\)