Teacher & coder

Задача № 397

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

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

Решение

Код из видео

def p(x):
    # Возвращает True, если число отрицательное, и False иначе.
    # True в Python равен 1, а False равен 0
    return x < 0


# Читаем файл
a = [int(x) for x in open('17.txt')]

# Считаем, сколько во всей последовательности чисел, кратных 100.
# Это и есть порог m, с которым дальше сравниваем суммы пар.
# Проверка x % 100 == 0 корректна для отрицательных чисел,
# но если привыкли к универсальному подходу можно написать abs
# m = len([x for x in a if abs(x) % 100 == 0])
m = len([x for x in a if x % 100 == 0])

# Сюда будем складывать суммы всех пар, подошедших под условие
ans = []

# zip(a, a[1:]) склеивает список и выдаёт пары соседних чисел:
# (a[0], a[1]), (a[1], a[2]), (a[2], a[3]), ...
for t in zip(a, a[1:]):
    # map(p, t) проверяет на отрицательность оба числа пары,
    # а sum(...) складывает результаты. Значит:
    # 0 — оба числа неотрицательные, 1 — ровно одно отрицательное, 2 — оба.
    # Нам нужно ровно одно отрицательное, поэтому сравниваем с 1.
    # Второе условие: сумма пары меньше найденного количества чисел, кратных 100
    if sum(map(p, t)) == 1 and sum(t) < m:
        ans.append(sum(t))

# Ответ: сначала количество подходящих пар (длина списка сумм),
# затем максимальная из этих сумм
print(len(ans), max(ans))

Артём Зинкин

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