
27 задание на егэ по информатике( № 7772 на решу егэ). Вот задание: Для заданной
последовательности неотрицательных целых чисел необходимо найти максимальное произведение двух её элементов, номера которых различаются не менее чем на 8. Значение каждого элемента последовательности не превышает 1000. Количество элементов последовательности не превышает 10000. В решении говорится, что для эффективного решения по времени и по памяти нужно хранить только последние 8 максимумов, но я не могу понять почему(отчасти из-за того, что решение дается на паскале). Может кто объяснить и показать правильное решение на питоне?

Ответы на вопрос

m = 0; p = 1; n = int(input())
a = [int(input()) for i in range(8)]
for i in range(n-8):
a.append(int(input()))
m = max(m, a[0]); p = max(p, m*a[8])
a = a[1:]
print(p)



Это задание можно эффективно решить, используя динамическое программирование. Поскольку нужно найти максимальное произведение пары элементов, разница между индексами которых не менее 8, то мы можем воспользоваться динамическим программированием для хранения максимальных значений на каждом шаге.
В данном случае, вам действительно нужно хранить только последние 8 максимумов, так как максимальная разница между индексами равна 8.
Вот пример решения на Python:
pythondef max_product(sequence):
max_values = [0] * 8 # Инициализируем список для хранения максимумов
max_product = 0
for i, num in enumerate(sequence):
if i >= 8:
# Рассматриваем текущее число и сравниваем с предыдущими максимумами
current_max = max(max_values) * num
max_product = max(max_product, current_max)
# Обновляем список максимумов
max_values[i % 8] = num
return max_product
# Пример использования
sequence = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
result = max_product(sequence)
print(result) # Выведет 96
Этот код создает список max_values
, в котором хранятся последние 8 максимумов. Затем он проходит по последовательности чисел и при каждом шаге обновляет max_product
, сравнивая текущее произведение с текущим максимумом. Таким образом, мы находим максимальное произведение пары элементов, разница между индексами которых не менее 8.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili