Задание 17. Информатика. ЕГЭ. Поляков-7228
- Просмотры: 230
- Изменено: 24 ноября 2024
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(-100~000\) до \(100~000\) включительно. Определите количество троек, для которых выполняются следующие условия:
— хотя бы два числа в тройке трёхзначные;
— ровно одно число в тройке заканчивается на \(3\);
— каждый элемент тройки меньше среднего арифметического всех элементов последовательности, запись которых заканчивается на \(38\). (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на \(38\).)
В ответе запишите количество найденных троек, затем — максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
def check(tr, m):
cond1 = [99 < abs(x) < 1000 for x in tr]
f3 = [abs(x) % 10 == 3 for x in tr]
cond3 = [x < m for x in tr]
return sum(cond1) > 1 and sum(f3) == 1 and all(cond3)
n = [int(x) for x in open('17.txt')]
n38 = [x for x in n if abs(x) % 100 == 38]
m = sum(n38) / len(n38)
max_sum = -10**100
q = 0
for tr in zip(n, n[1:], n[2:]):
if check(tr, m):
q += 1
max_sum = max(max_sum, sum(tr))
print(q, max_sum)
Ответ: \(1771 \,\, 2763\)