S = {0,1,2,3,4,5}
i = 7
k = 17
# this is in the step i=0, described in the base case
# where f(0,0)=1 and f(0,k)=0 for non-zero k
intermediates = [1] + [0]*k
for _ in range(i):
temp = []
for x in range(k+1):
temp.append(sum(intermediates[x-s] if 0 <= x-s <= k else 0 for s in S))
intermediates = [x for x in temp] # deep copy
print(intermediates[k])
UyA9IHswLDEsMiwzLDQsNX0KaSA9IDcKayA9IDE3CgojIHRoaXMgaXMgaW4gdGhlIHN0ZXAgaT0wLCBkZXNjcmliZWQgaW4gdGhlIGJhc2UgY2FzZQojIHdoZXJlIGYoMCwwKT0xIGFuZCBmKDAsayk9MCBmb3Igbm9uLXplcm8gawppbnRlcm1lZGlhdGVzID0gWzFdICsgWzBdKmsKCmZvciBfIGluIHJhbmdlKGkpOgoJdGVtcCA9IFtdCglmb3IgeCBpbiByYW5nZShrKzEpOgoJCXRlbXAuYXBwZW5kKHN1bShpbnRlcm1lZGlhdGVzW3gtc10gaWYgMCA8PSB4LXMgPD0gayBlbHNlIDAgZm9yIHMgaW4gUykpCglpbnRlcm1lZGlhdGVzID0gW3ggZm9yIHggaW4gdGVtcF0gIyBkZWVwIGNvcHkKCnByaW50KGludGVybWVkaWF0ZXNba10p