Найти в Дзене

Разбор номера #yandex по информатике #ЕГЭ17

Автор: Яндекс Учебник
Уровень: Базовый В файле содержится последовательность целых чисел, каждое из которых находится в диапазоне от -20000 до 20 000. Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.
В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.
Например, в последовательности 1 2 3 4 5 6 у пары (3, 4) соседние пары (1, 2) и (5, 6). Файлы для решения задачи: 17.txt Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻 Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!
Оглавление

Автор: Яндекс Учебник
Уровень: Базовый

Условие задачи:

В файле содержится последовательность целых чисел, каждое из которых находится в диапазоне от -20000 до 20 000. Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.
В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.
В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.
Например, в последовательности 1 2 3 4 5 6 у пары (3, 4) соседние пары (1, 2) и (5, 6).

Код решения:

Ответ:  610  -123157359
Ответ: 610 -123157359

Файлы для решения задачи: 17.txt

Комментарии к коду:

  1. M = [int(s) for s in open('17.txt')]
    Читаем файл 17.txt, преобразуем каждую строку в целое число и сохраняем в список M.
  2. R = []
    Создаем пустой список R для хранения результатов.
  3. for i in range(len(M)-5):
    Цикл по индексам списка M с шагом 1, останавливаясь за 5 элементов до конца (чтобы хватило элементов для среза).
  4. x, y, z, w, r, t = M[i:i+6]
    Берем срез из 6 последовательных элементов и распаковываем их в переменные x, y, z, w, r, t.
  5. if (z + w) > (x + y) and (z + w) > (r + t):
    Проверяем, что сумма третьего и четвертого элементов (`z + w`) больше суммы:
    - первых двух элементов (`x + y`)
    - последних двух элементов (`r + t`)
  6. if z + w > 0 and x + y > 0 and r + t > 0:
    Дополнительная проверка, что все три суммы положительные.
  7. R.append(z * w)
    Если оба условия выполнены, добавляем произведение z * w в список R.
  8. print(len(R), min(R))
    Выводим количество найденных подходящих комбинаций и минимальное значение среди произведений z * w.
Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!