if(s[j]+a>s2[ost]): IndexError: list index out of range . Вылетает ошибка. Как её можно исправить?

ans=0
n=int(input())
s=[0]*5
ost=0
mozhno=[True,False,False,False,False]
diff=0
for i in range(n):
    a,b=[int(m) for m in input().split()]
    s2=[]
    mozhno2=[False]*5
    for j in range (5):
         if mozhno[j]==True:
            ost=(s[j]+a)%5
            if(s[j]+a>s2[ost]):
                s2[ost] = s[j]+a
            ost = (s[j] + b) % 5
            if (s[j] + b > s2[ost]):
                s2[ost] = s[j] + b
    for j in range(5):
        s[j]=s2[j]
        mozhno[j]=mozhno2[j]

if mozhno[0]:
    print(s[0])

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

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

у вас изначально s2 -пустой массив

s2=[]

вы его не пополняете через append, но обращаетесь по индексу

if (s[j] + b > s2[ost]):

отсюда и вылетает с ошибкой, что вне диапазона массива (массив пустой)

например массив s вы хотя бы сразу из 5 нулевых элементов сделали

s=[0]*5
→ Ссылка