№17 · решено
Тройки, ровно два «хорошие», сумма меньше максимума
В файле лежит последовательность целых чисел, каждое по модулю не больше 100 000. Тройкой называем три соседних элемента. Найдите количество троек, в которых ровно два элемента оканчиваются на 9 и являются четырёхзначными числами, а сумма всех трёх элементов меньше максимального элемента последовательности, который оканчивается на 9 и является четырёхзначным числом. В ответе запишите два числа через пробел: сначала количество найденных троек, затем наибольшую из сумм элементов таких троек.
Источник: ФИПИ (Резервная 22.06.2026), № 31225
Скачать файл: task_31225_A.txt. В редакторе он уже лежит рядом с кодом, открывай как на экзамене: open('task_31225_A.txt').
Ответвпиши то, что вывела программа
Показать разбор
- Прочитай числа из файла в список.
- Напиши функцию g: число четырёхзначное и оканчивается на 9. В отрицательных минус не считается, поэтому бери str(abs(x)).
- До цикла один раз найди максимум среди чисел, для которых g верна.
- Пройди по тройкам циклом до len(a) - 2. Ровно два подходящих проверь сложением: g(x1) + g(x2) + g(x3) == 2.
- Если сумма тройки меньше этого максимума, добавь её в список c.
- Напечатай длину списка и его максимум.
a = [int(line) for line in open('task_31225_A.txt')]
def g(x):
return len(str(abs(x))) == 4 and str(abs(x))[-1] == '9'
mx = max(x for x in a if g(x))
c = []
for i in range(len(a) - 2):
x1, x2, x3 = a[i], a[i + 1], a[i + 2]
if g(x1) + g(x2) + g(x3) == 2:
if x1 + x2 + x3 < mx:
c.append(x1 + x2 + x3)
print(len(c), max(c))