Задание 17. Информатика. Статград 2023-1-2

Просмотры: 108
Изменено: 24 ноября 2024

Файл содержит последовательность целых чисел, по модулю не превышающих \(10~000\). Назовём парой два идущих подряд элемента последовательности. Определите количество таких пар, в которых запись ровно одного элемента заканчивается цифрой \(6\), а сумма квадратов элементов пары меньше, чем квадрат наименьшего из элементов последовательности, запись которых заканчивается цифрой \(6\). В ответе запишите два числа: сначала количество найденных пар, затем максимальную сумму квадратов элементов этих пар.

Файл с данными

Решение:

Python


def only_6(t):
    last_dig = [abs(x) % 10 for x in t]
    return last_dig.count(6) == 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 == 6, num_array))**2

temp = filter(only_6, 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))

Ответ: \(720 \,\, 99266105\)