Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- from functools import lru_cache
- sys.setrecursionlimit(100000000)
- def moves(h):
- if h == 1:
- return [0]
- d = []
- for i in range(1, (h // 2) + 1):
- d.append(h - i)
- return d
- @lru_cache(None)
- def f(h):
- if h == 0:
- return 'END'
- elif (any(f(i) == 'END' for i in moves(h))):
- return 'П1'
- elif (all(f(i) == 'П1' for i in moves(h))):
- return 'В1'
- elif (any(f(i) == 'В1' for i in moves(h))):
- return 'П2'
- elif (all(f(i) == 'П2' for i in moves(h))):
- return 'В2'
- elif (any(f(i) == 'В2' for i in moves(h))):
- return 'П3'
- elif (all(f(i) == 'П3' for i in moves(h))):
- return 'В3'
- elif (any(f(i) == 'В3' for i in moves(h))):
- return 'П4'
- elif (all(f(i) == 'П4' for i in moves(h))):
- return 'В4'
- elif (any(f(i) == 'В4' for i in moves(h))):
- return 'П5'
- elif (all(f(i) == 'П5' for i in moves(h))):
- return 'В5'
- elif (any(f(i) == 'В5' for i in moves(h))):
- return 'П6'
- elif (all(f(i) == 'П6' for i in moves(h))):
- return 'В6'
- elif (any(f(i) == 'В6' for i in moves(h))):
- return 'П7'
- elif (all(f(i) == 'П7' for i in moves(h))):
- return 'В7'
- elif (any(f(i) == 'В7' for i in moves(h))):
- return 'П8'
- elif (all(f(i) == 'П8' for i in moves(h))):
- return 'В8'
- elif (any(f(i) == 'В8' for i in moves(h))):
- return 'П9'
- elif (all(f(i) == 'П9' for i in moves(h))):
- return 'В9'
- elif (any(f(i) == 'В9' for i in moves(h))):
- return 'П10'
- elif (all(f(i) == 'П10' for i in moves(h))):
- return 'В10'
- elif (any(f(i) == 'В10' for i in moves(h))):
- return 'П11'
- elif (all(f(i) == 'П11' for i in moves(h))):
- return 'В11'
- elif (any(f(i) == 'В11' for i in moves(h))):
- return 'П12'
- elif (all(f(i) == 'П12' for i in moves(h))):
- return 'В12'
- elif (any(f(i) == 'В12' for i in moves(h))):
- return 'П13'
- elif (all(f(i) == 'П13' for i in moves(h))):
- return 'В13'
- elif (any(f(i) == 'В13' for i in moves(h))):
- return 'П14'
- elif (all(f(i) == 'П14' for i in moves(h))):
- return 'В14'
- elif (any(f(i) == 'В14' for i in moves(h))):
- return 'П15'
- elif (all(f(i) == 'П15' for i in moves(h))):
- return 'В15'
- elif (any(f(i) == 'В15' for i in moves(h))):
- return 'П16'
- elif (all(f(i) == 'П16' for i in moves(h))):
- return 'В16'
- elif (any(f(i) == 'В16' for i in moves(h))):
- return 'П17'
- elif (all(f(i) == 'П17' for i in moves(h))):
- return 'В17'
- elif (any(f(i) == 'В17' for i in moves(h))):
- return 'П18'
- elif (all(f(i) == 'П18' for i in moves(h))):
- return 'В18'
- elif (any(f(i) == 'В18' for i in moves(h))):
- return 'П19'
- elif (all(f(i) == 'П19' for i in moves(h))):
- return 'В19'
- v = '''
- elif (all(f(i) == 'П{}' for i in moves(h))):
- return 'В{}'
- '''
- p = '''
- elif (any(f(i) == 'В{}' for i in moves(h))):
- return 'П{}'
- '''
- s = []
- for x in range(5, 20):
- s.append(p.format(x - 1, x))
- s.append(v.format(x, x))
- # print(''.join(s))
- for i in range(1001, 2000):
- print(i, f(i))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement