Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может
а) добавить в любую кучу один камень;
б) увеличить количество камней в любой куче в четыре раза.
Игра завершается в тот момент, когда суммарное количество камней в двух кучах становится не менее 95, побеждает игрок, сделавший последний ход. В начальный момент в первой куче было 5 камней, а во второй – S камней, 1 ≤ S ≤ 89. дание 20.
Найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
− Петя не может выиграть за один ход;
− Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня. Найденные значения запишите в ответе в порядке возрастания.

Показать решение

def F(x, y, poz):
    if x + y >= 95 and poz == 4:
        return 1
    if x + y < 95 and poz == 4:
        return 0
    else:
        if x + y >= 95:
            return 0
    if poz % 2 == 1:
        return F(x + 1, y, poz + 1) or F(x, y + 1, poz + 1) or F(x * 4, y, poz + 1) or F(x, y * 4, poz + 1)
    if poz % 2 == 0:
        return F(x + 1, y, poz + 1) and F(x, y + 1, poz + 1) and F(x * 4, y, poz + 1) and F(x, y * 4, poz + 1)        
for i in range(1, 90):
    if F(5, i, 1):
        print(i)

Ответ: 14 22