Найдите количество значений S, при которых одновременно выполняются два условия:
— у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
— у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
def moves(h):
ans = []
if (h+1) % 2 == 1:
ans.append(h+1)
if (h+3) % 2 == 1:
ans.append(h+3)
if (h*3) % 2 == 1:
ans.append(h*3)
return ans
def f(h):
if h >= 51:
return ’END’
if any(f(x) == ’END’ for x in moves(h)):
return ’P1’
if all(f(x) == ’P1’ for x in moves(h)):
return ’V1’
if any(f(x) == ’V1’ for x in moves(h)):
return ’P2’
if all(f(x) == ’P2’ for x in moves(h)):
return ’V2’
count = 0
for i in range(1, 51):
if f(i) == ’V2’:
count += 1
print(count)
Ответ: 2