• Предмет: Информатика
  • Автор: FerunandoVotram
  • Вопрос задан 1 год назад

27 задание на егэ по информатике( № 7772 на решу егэ). Вот задание:

Для за­дан­ной по­сле­до­ва­тель­но­сти не­от­ри­ца­тель­ных целых чисел не­об­хо­ди­мо найти мак­си­маль­ное про­из­ве­де­ние двух её эле­мен­тов, но­ме­ра ко­то­рых раз­ли­ча­ют­ся не менее чем на 8. Зна­че­ние каж­до­го эле­мен­та по­сле­до­ва­тель­но­сти не пре­вы­ша­ет 1000. Ко­ли­че­ство эле­мен­тов по­сле­до­ва­тель­но­сти не пре­вы­ша­ет 10000.

В решении говорится, что для эффективного решения по времени и по памяти нужно хранить только последние 8 максимумов, но я не могу понять почему(отчасти из-за того, что решение дается на паскале). Может кто объяснить и показать правильное решение на питоне?

Ответы

Ответ дал: SmEgDm
1

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)


FerunandoVotram: с кодом разобрался, однако почему изначально p=1, а не 0? Это на что-то влияет или можно p присвоить 0?
SmEgDm: Можно присвоить и 0. Просто у меня выработалась привычка присваивать для поиска произведения 1. :D
SmEgDm: Это нужно скорее для 25 задачи, а тут это не важно
FerunandoVotram: понял, спасибо
Вас заинтересует