Задание 17. Информатика. ЕГЭ. Поляков-7234

Просмотры: 53
Изменено: 17 октября 2024

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(-100~000\) до \(100~000\) включительно. Определите количество троек, для которых выполняются следующие условия:
— в тройке есть четырёхзначные числа, но не все числа четырёхзначные;
— в тройке больше чисел, кратных \(13\), чем чисел, кратных \(7\);
— каждый элемент тройки больше среднего арифметического всех элементов последовательности, запись которых заканчивается на \(151\). (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на \(151.\))
В ответе запишите количество найденных троек, затем – минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

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

Решение:

Python


def check(tr, m):
    cond1 = [999 < abs(x) < 10000 for x in tr]
    d13 = [abs(x) % 13 == 0 for x in tr]
    d7 = [abs(x) % 7 == 0 for x in tr]
    cond3 = [x > m for x in tr]

    return 0 < sum(cond1) < 3 and sum(d13) > sum(d7) and all(cond3)

n = [int(x) for x in open('17.txt')]

n151 = [x for x in n if abs(x) % 1000 == 151]
m = sum(n151) / len(n151)

min_sum = 10**100
q = 0

for tr in zip(n, n[1:], n[2:]):
    if check(tr, m):
        q += 1
        min_sum = min(min_sum, sum(tr))

print(q, min_sum)

Ответ: \(18 \,\, 37313\)