Форум » Обработка числовых последовательностей » №4513 (27.80) другое решение » Ответить

№4513 (27.80) другое решение

beep: Здравствуйте! В предложенных решениях есть вариант "27-80smart.py", но мне кажется, так будет куда умнее и больше в духе динамического программирования (и работает в 2 раза быстрее): [pre2] n = None k = 3 indexes = [] s = [0] with open("27-80b.txt") as f: n = int(f.readline()) for i, x in enumerate(f): x = int(x) if x % 5 == 0: indexes.append(i) s.append(s[-1] + x) s.pop(0) l = len(indexes) l -= l % k sMax = None for i in range(len(indexes) - l + 1): if i == 0: tail = 0 else: tail = s[indexes[i - 1]] if i + l == len(indexes): head = s[-1] else: head = s[indexes[i + l] - 1] sTemp = head - tail if sMax is None or sTemp > sMax: sMax = sTemp print(sMax) [/pre2]

Ответов - 2

beep: По такому же принципу решаются задачи: №4514 (72.81) №4515 (72.82)

Поляков: Спасибо, решение задачи 27.80 добавлено.



полная версия страницы