k=2 : 1 2 3 5 8 13 21 34…
k=3 : 1 2 4 7 13 24 44 81…
k=4 : 1 2 4 8 15 29 56 108…
k=5 : 1 2 4 8 16 31 61 120…
规律:
当i<=k时,第i项=(上一项2)%100003;
当i>k时 ,第i项=(上一项2-第i-1-k项)%100003;
虽然做出来了,还不是太了解为啥设a[0]=1。
mod=100003
n,k=map(int,input().split())
a=[0]*1000000
a[0]=a[1]=1
for i in range(2,n+1):
if i<=k:
a[i]=(a[i-1]*2)%mod
else:
#print('a',a[i-1-k])
a[i]=(a[i-1]*2-a[i-1-k])%mod
ans=(a[n])%mod
print(ans)