Все задачи №17
№17

Тройки, ровно два «хорошие», сумма меньше максимума

В файле лежит последовательность целых чисел, каждое по модулю не больше 100 000. Тройкой называем три соседних элемента. Найдите количество троек, в которых ровно два элемента оканчиваются на 9 и являются четырёхзначными числами, а сумма всех трёх элементов меньше максимального элемента последовательности, который оканчивается на 9 и является четырёхзначным числом. В ответе запишите два числа через пробел: сначала количество найденных троек, затем наибольшую из сумм элементов таких троек.

Источник: ФИПИ (Резервная 22.06.2026), № 31225

Скачать файл: task_31225_A.txt. В редакторе он уже лежит рядом с кодом, открывай как на экзамене: open('task_31225_A.txt').

Ответвпиши то, что вывела программа
Показать разбор
  1. Прочитай числа из файла в список.
  2. Напиши функцию g: число четырёхзначное и оканчивается на 9. В отрицательных минус не считается, поэтому бери str(abs(x)).
  3. До цикла один раз найди максимум среди чисел, для которых g верна.
  4. Пройди по тройкам циклом до len(a) - 2. Ровно два подходящих проверь сложением: g(x1) + g(x2) + g(x3) == 2.
  5. Если сумма тройки меньше этого максимума, добавь её в список c.
  6. Напечатай длину списка и его максимум.
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))