Задание 17. Информатика. ЕГЭ. Поляков-7233
- Просмотры: 9
- Изменено: 7 сентября 2024
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(-100~000\) до \(100~000\) включительно. Определите количество троек, для которых выполняются следующие условия:
— в тройке есть трёхзначные числа, но не все числа трёхзначные;
— в тройке больше чисел, кратных \(11\), чем чисел, кратных \(3\);
— каждый элемент тройки больше среднего арифметического всех элементов последовательности, запись которых заканчивается на \(271\). (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на \(271\).) В ответе запишите количество найденных троек, затем — минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
def check(tr, m):
cond1 = [99 < abs(x) < 1000 for x in tr]
d11 = [abs(x) % 11 == 0 for x in tr]
d3 = [abs(x) % 3 == 0 for x in tr]
cond3 = [x > m for x in tr]
return 0 < sum(cond1) < 3 and sum(d11) > sum(d3) and all(cond3)
n = [int(x) for x in open('17.txt')]
n271 = [x for x in n if abs(x) % 1000 == 271]
m = sum(n271) / len(n271)
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)
Ответ: \(31 \,\, 11207\)