Teacher & coder

Задача № 100

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

Гарантируется, что в последовательности есть хотя бы одно число, оканчивающееся на 13. В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Можно скопировать и вставить все ответы сразу
Демонстрационный вариант 2024 года
Прокрути, чтобы прочитать решение задачи
Ты уверен, что хочешь это сделать?
Удачного чтения!

Решение

Напишем программу.

# откроем файл, прочитаем и разделим строки
# .readlines() — сохранит символ переноса строки (неудобно)
# .read().splitlines() — удалит символ переноса строки (два последних символа будут равны двум последним цифрам)
file = open('17.txt').read().splitlines()

# вычислим макимальный элемент, который заканчивается на 13
max13 = int(max(num for num in file if num[-2:] == '13'))

# создадим переменные для ответа
# количество и максимальная сумма
count = 0
maxS = 0

# тройки чисел рассматриваются подряд
# для каждого из цисел нужно рассмотреть два следующих числа
for i in range(len(file)-2):
    a = int(file[i])
    b = int(file[i+1])
    c = int(file[i+2])

    # посчитаем сколько элементов трёхзначны
    digit3 = 99 < a < 1000
    digit3 += 99 < b < 1000
    digit3 += 99 < c < 1000

    # если ровно два трёхзначны и сумма не больше max13,
    # то считаем такую тройку и сравниваем с максимальной суммой
    if digit3 == 2 and a+b+c <= max13:
        count += 1
        maxS = max(maxS, a+b+c)

# выводим ответ
print(count, maxS)

Артём Зинкин

Лучше не гуглить и подумать самостоятельно. Тест можно пройти несколько раз :)
Чтобы поделиться задачей с коллегами или друзьями, отправьте им ссылку :)
Забыл сказать, что у этой задачи есть подробное решение. Посмотрите его :)
Попробуйте решить эту задачу сами и посмотрите наши разборы похожих задач :)
Кстати, на ЕГЭ тоже нельзя копировать :)
Этим материалом удобно поделиться по прямой ссылке :)