Задача #4372

Задания 19–21

Уровень ЕГЭ

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

(А. Шуруха) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может:
— добавить в одну из куч (по своему выбору) 2 камня;
— увеличить количество камней в одной из куч (по своему выбору) в 2 раза.
Например, пусть в одной куче 20 камней, а в другой 30 камней; такую позицию в игре обозначим (20, 30). Тогда за один ход можно получить любую из четырёх позиций: (22, 30), (20, 32), (40, 30), (20, 60). Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда выполняется хотя бы одно из двух условий: суммарное количество камней в двух кучах становится не менее 120 или произведение количеств камней в двух кучах становится не менее 1000. Победителем считается игрок, сделавший последний ход, то есть первым получивший позицию, удовлетворяющую хотя бы одному из этих условий. В начальный момент в первой куче было 22 камня, во второй куче — S камней; 1 ≤ S ≤ 45. Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.

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

Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.

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

Ответ

21

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

def moves(a, b):
return [(a + 2, b), (a, b + 2), (2 * a, b), (a, 2 * b)]
def f(a, b, m):
if a + b >= 120 or a * b >= 1000: return m % 2 == 0
if m == 0: return False
h = [f(x, y, m - 1) for x, y in moves(a, b)]
return any(h) if m % 2 else all(h)

a19 = [s for s in range(1, 46) if f(22, s, 2)]
a20 = [s for s in range(1, 46) if f(22, s, 3) and not f(22, s, 1)]
a21 = [s for s in range(1, 46) if f(22, s, 4) and not f(22, s, 2)]
print('19', min(a19))
print('20', *a20[:2])
print('21', min(a21))

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

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