Задача к ЕГЭ по информатике на тему «Теория игр» №51

Укажите такое значение S  , при котором у Ани есть выигрышная стратегия, причём Аня не может выиграть первым ходом, но может выиграть своим вторым ходом независимо от того, как будет ходить Амина.

Если такого значения нет, в ответ запишите 0.

Так как нас интересуют только единички, то очевидно, что при копировании числа у нас единичек становится в 3 раза больше. А при приписывании числа вида 22n−1  получаем приписывание 1 единички.

from functools import lru_cache


def moves(h):
    a, b = h
    return (a + 1, b), (a, b + 1), (a * 3, b), (a, b * 3)


@lru_cache(None)
def f(h):
    if (sum(h) >= 100):
        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’


for s in range(1, 92):
    h = 7, s
    if f(h) == ’P2’:
        print(s)
        break

Ответ: 26
Оцените статью
Я решу все!