Asosiy qismga o‘tish
Olimpiadaga tayyorgarlik

Задача на Размышление

Первые мысли и решение задача с обьяснениями и кодом

Xaydarov Zafar AlamovichPRO 05 Oktabr 2026 · 2 daqiqa o‘qish 23 5

AL05-2. Лучшая неделя

Дана прибыль магазина за n дней (убыток — отрицательное число). Какова наибольшая общая прибыль среди периодов из k дней подряд?

Первые мысли
В начале я просто хотел пройтись через for
к примеру for i in range(2,len(s))

7 3
[2 -1 3] 5 -2 4 1 ---> 7 3
2 [-1 3 5] -2 4 1 ---> 7 3
2 -1 [3 5 -2] 4 1

Оказалось что мой код имеет несколько ошибок
1 В коде прописано только для 3 если переменная равна не 3 а 5 или 7 то скрипт уже правильно работать не сможет
2 В коде было много ошибок которые привели к краху и такой код был не оптимальным решением для этой задачи

Поэтому

После того как я поразмышлял несколько минут я допер до того что нам вовсе не нужно проходить наивно по фору и скалдывать все числа подряд

Код

a,k = list(map(int,input().split()))
s = list(map(int,input().split()))
st = sum(s[:k])
mst = st

for i in range(k,a):
    st = st + s[i] - s[i-k]
    if st > mst:
        mst = st
print(mst)

Зачем нам перебирать через фор одно и тоже если я могу

cur_sum - last_num + prev_num
Тогда проверив

max_sum и sum

то можно легко найти решение на эту задачку