17.01 Обработка пар элементов последовательности
Ошибка.
Попробуйте повторить позже
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10000 до 10000 включительно. Определите количество пар последовательности, в которых оба числа отрицательны, а произведение чисел пары больше количества чисел в последовательности, делящихся на 2. В ответе запишите через пробел количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Решение программой
Напишем программу, которая сначала подсчитывает количество чётных чисел во всей последовательности — это число понадобится для проверки условия. Далее перебираем все пары соседних чисел и проверяем, что оба числа отрицательны. Если это так, проверяем, что произведение этих двух отрицательных чисел больше количества чётных чисел в последовательности. Если пара удовлетворяет обоим условиям, увеличиваем счётчик таких пар и сравниваем сумму элементов пары с текущим максимальным значением суммы, обновляя его при необходимости. В конце выводим количество найденных пар и максимальную сумму среди них.
# Открываем файл и считываем всю последовательность чисел в список file = open("17.txt") arr = [int(_) for _ in file] # Подсчитываем количество чисел, делящихся на 2 (чётных чисел) в последовательности counter_even = len([j for j in arr if j % 2 == 0]) max_summ = -10**10 # Инициализируем максимальную сумму очень маленьким числом ans_count = 0 # Счётчик подходящих пар # Перебираем все пары соседних элементов последовательности for i in range(len(arr) - 1): # Проверяем, что оба числа отрицательны if arr[i] < 0 and arr[i + 1] < 0: # Проверяем, что произведение пары больше количества чётных чисел в последовательности if arr[i] * arr[i + 1] > counter_even: ans_count += 1 # Увеличиваем счётчик подходящих пар max_summ = max(max_summ, arr[i] + arr[i + 1]) # Обновляем максимальную сумму # Выводим количество подходящих пар и максимальную сумму среди них print(ans_count, max_summ)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!