import itertools
import sys
class Solution:
def get_keys(self):
k = 2
vals = [[1,3],[2,3],[4,4]]
m = 0
for i in vals:
for t in i:
m = max(t,m)
dp = []
for i in range(1,m+1):
count = 0
for j in [x*2 for x in range((m/k)+1)]:
if j<=i:
count +=self.get_count(i,j,k)
dp.append(count)
res =[]
for val in vals:
c1 = 0
for i in range(val[0],val[1]+1):
c1+=dp[i-1]
res.append(c1)
print(res)
def get_count(self,n,m,k):
if m==0:
return 1
if m==n:
return 1
n = n-(m/k)
m = m/k
r1 = self.factorial(n)/(self.factorial(m)*self.factorial(n-m))
return r1
def factorial(self,n):
if n ==0:
return 1
result = n
for i in range(1, n):
result *= i
return result
if __name__ == "__main__":
s = Solution()
s.get_keys()