Я решаю задачу, для которой нужен либо список целых чисел, либо словарь размером 10 ^ 18. После запуска кода компилятор выдает сообщение об ошибке «Превышен лимит памяти».
Вот мой код:
def fun(l,r,p):
#f=[None,1,1]
f={0:0,1:1,2:1}
su=0
for i in range(1,r):
if i%2==0:
f[i+2]=2*f[i+1]-f[i]+2
#f.append(2*f[i+1]-f[i]+2)
else:
f[i+2]=3*f[i]
#f.append(3*f[i])
for k in range(l,r):
su=su+f[k]
su=(su+f[r])%p
print(su)
t,p=input().split()
p=int(p)
t=int(t)
#t=3
#p=100000007
for i in range(t):
l,r=input().split()
l=int(l)
r=int(r)
fun(l,r,p)
Показывает превышение лимита памяти при максимальном использовании памяти 306612 КБ