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

Найдите два наибольших значения 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’


predmax = 0
maxim = 0
for i in range(1, 51):
    if f(i) == ’P2’:
        predmax = maxim
        maxim = i
print(predmax, maxim)

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