Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def nimAdd(a,b):
- def nimSieve(a,b):
- return cache(a,b)
- cch = dict()
- apad = list()
- bpad = list()
- for i in range(a):
- apad.append(nimSieve(i,b))
- for i in range(b):
- bpad.append(nimSieve(a,i))
- return mex(apad + bpad)
- def cache(a,b):
- cch = dict()
- try:
- return cch[spell(a,b)]
- except:
- return write(a,b)
- def write(a,b):
- cch[spell(a,b)] = nimAdd(a,b)
- def spell(a,b):
- return str(a)+","+str(b)
- def mex(S):
- for s in range(max(S)+2 if S else 1):
- if s in S:
- continue
- else:
- return s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement