В чем заключается ошибка в коде?

Дана последовательность вещественных чисел. Из неё необходимо выбрать несколько подряд идущих чисел так, чтобы каждое следующее число отличалось от предыдущего не более чем на 8. Какую максимальную сумму могут иметь выбранные числа?

В ответе запишите только целую часть максимально возможной суммы. Исходная последовательность записана в виде одного столбца электронной таблицы.

Ссылка на exel file с данными

решаю с помощью python и где-то присутствует ошибка, хотя логически все верно выстроил

sp = []
for i in range(500): #500 -потому что в файле 500 значений, я просто скопировал все 500 значений из таблицы и в инпут сразу их все вставил с заменой запятой на точку , тк питон не принимает запятые в вещественных числах
    sp.append(float(input().replace(",",".")))
s=sp[0]
s_max=0
for i in range(len(sp)-1):# -1 тк последнее число не с чем сравнивать , тк дальше список заканчивается
    if (sp[i]-sp[i+1])<=8:#условие , что элементы различаются не более чем на 8 
        s += sp[i+1]#далее если условие проходит то в s добавляем следующий элемент
        
    else:
        if s> s_max:
            s_max=s
        s=sp[i+1]#обновляем s (делаем так, чтобы она стала следующим элементом списка)
print(s_max)

ответ выдает 86...

а верный 69


Ответы (1 шт):

Автор решения: MBo

if abs(sp[i]-sp[i+1])<=8

И ещё момент с отрицательной суммой - её накапливать нет смысла

for...
    if abs(sp[i]-sp[i+1])<=8:
        s = max(sp[i+1],s+sp[i+1])
    else:
        s=sp[i+1] 
    s_max = max(s, s_max)

    
→ Ссылка