Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def f(k,n):
- matN = int(k*(k+1)/2)
- v = [1]*matN
- vTemp = [0]*matN
- for _ in range(n):
- bSize = 1
- for bI in range(k-1, -1, -1):
- currAdd = 0
- for bII in range(bSize-1, -1, -1):
- realI = matN - int(bSize*(bSize+1)/2) + bII
- if bII==0:
- vTemp[realI] = v[realI] + (vTemp[realI+1] if bSize>1 else 0)
- else:
- currAdd += 2*v[realI]
- correspI = matN - int(bSize*(bSize-1)/2) + bII-1
- vTemp[realI] = currAdd + vTemp[correspI]
- bSize += 1
- v, vTemp = vTemp, v
- return v[0]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement