Задача #1547

Задания 19–21

Уровень ЕГЭ

Общее условие для 19–21

(М. Ишимов) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в кучу четыре камня или увеличить количество камней в куче в два раза. У каждого игрока есть неограниченное количество камней, чтобы делать ходы.
Игра завершается в тот момент, когда количество камней в куче становится не менее 281. Победителем считается игрок, сделавший последний ход, т.е. первым получивший кучу из 281 камня или больше.
В начальный момент в куче было S камней; 1 <= S <= 280.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

Вопрос для задания 20

Для игры, описанной в задании 19, найдите два таких минимальных значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:
- Петя не может выиграть за один ход;
- Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
Найденные значения запишите в ответе в порядке возрастания.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

69
70

Общий разбор связки

def f(s, m):
if s >= 281: return m%2==0
if m == 0: return 0
h = [f(s+4, m-1), f(s*2, m-1)]
return any(h) if m%2!=0 else all(h)
print(19, min(s for s in range(1, 281) if f(s, 2)))
print(20, [s for s in range(1, 281) if not f(s, 1) and f(s, 3)][:2])
print(21, min(s for s in range(1, 281) if not f(s, 2) and f(s, 4)))

Решение для задания 20

Быстрый переход
Перейти к задаче