ЕГЭ, ОГЭ, программирование и робототехника в Калининграде

№ 17002. Основная волна

В файле содержится последовательность целых чисел. Её элементы по модулю не превышают 100000 включительно.

Определите количество троек элементов последовательности, в которых хотя бы один элемент оканчивается на 3 и является трёхзначным числом, а сумма всех элементов меньше максимального элемента последовательности, оканчивающегося на 3 и являющегося трёхзначным числом.

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

def cons(num):
    # Трёхзначное
    cond_1 = 100 <= abs(num) < 1_000
    # Оканчивается на 3
    cond_2 = abs(num) % 10 == 3
    return cond_1 and cond_2


with open('1702.txt') as f:
    data = list(map(int, f))

max_el = max(num for num in data if cons(num))
answer = []

for x, y, z in zip(data, data[1:], data[2:]):
    if (cons(x) or cons(y) or cons(z)) 
            and x + y + z < max_el:
        answer.append(x + y + z)

print(len(answer), max(answer))
Разберём это задание на бесплатном пробном занятии

Преподаватель покажет, как решать такие задачи, и подскажет, с чего начать подготовку. Группы до 8 человек, очно в Калининграде и онлайн.

Записаться на пробное занятие