Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from functools import lru_cache
- W = 57 # сумма для победы
- @lru_cache(None)
- def F(a, b):
- # можно ли выигрыть одним ходом
- if a * 2 + b >= W or a + b * 2 >= W:
- return 1 # выигрыш одним ходом - база рекурсии
- lst = [ F(a + 1, b), F(a, b * 2), F(a * 2, b), F(a, b + 1) ]
- if min(lst) > 0:
- return -max(lst) # проигрываем - выбираем максимальное
- # иначе выигрываем - наибольшее отрицательное
- return 1 - max([x for x in lst if x < 0])
- for s in range(1, 52):
- if F(5, s) == -2:
- print(s, 'Ваня 2')
Advertisement
Add Comment
Please, Sign In to add comment