Двое по очереди меняют кучу (или две кучи) камней. Нужно найти начальное значение S, при котором Ваня выигрывает своим первым ходом — при любом ходе Пети или после его ошибки.
Термины
Выигрышная позиция — из неё есть ход, после которого соперник проигрывает при любой игре.
«Ваня выигрывает первым ходом при любом ходе Пети» — все ходы Пети ведут в позиции, где выигрывают одним ходом.
«Неудачный ход Пети» — достаточно одного такого хода.
Как решать
Разобраться с позициями, из которых игра заканчивается одним ходом.
Найти S, из которых все (или хотя бы один) ходы ведут в такие позиции.
Проверить программой f(s, m).
Типичные ошибки
Перепутать «при любом ходе» (all) и «после неудачного хода» (any).
Забыть, что при делении количество округляется вниз.
Начать перебор S не с того значения.
Разобранные варианты
Сначала реши сам — на бумаге или программой, потом открой разбор.
Вариант 1
одна куча, убывает · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – убрать из кучи 1 камень; – убрать из кучи 4 камня; – уменьшить количество камней в куче в 3 раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 40 камней за один ход можно получить кучу из 39, 36, 13 камней. Игра завершается, когда количество камней в куче становится не более 20. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 20 или менее камней. В начальный момент в куче было S камней, S ≥ 21.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции 63 Петя может получить 21, 59, 62. Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
59
Петя выигрывает 1-м ходом
60
Петя выигрывает 1-м ходом
61
Петя выигрывает 1-м ходом
62
Петя выигрывает 1-м ходом
63
Ваня выигрывает 1-м ходом
64
Петя выигрывает 2-м ходом
65
Ваня выигрывает 1-м или 2-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 63
Решение на Python.
def f(s, m):
if s <= 20:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s - 1, s - 4, s // 3)]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(21, 420) if f(s, 2)))
Вариант 2
одна куча, растёт · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в кучу 1 камень; – добавить в кучу 4 камня; – увеличить количество камней в куче в 3 раза. Например, из кучи в 10 камней за один ход можно получить кучу из 11, 14, 30 камней. Игра завершается, когда количество камней в куче становится не менее 98. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 98 или более камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 97.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции 32 Петя может получить 33, 36, 96. Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
28
Петя выигрывает 2-м ходом
29
Петя выигрывает 3-м ходом
30
Ваня выигрывает 1-м или 2-м ходом
31
Петя выигрывает 2-м ходом
32
Ваня выигрывает 1-м ходом
33
Петя выигрывает 1-м ходом
34
Петя выигрывает 1-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 32
Решение на Python.
def f(s, m):
if s >= 98:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s + 1, s + 4, s * 3)]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(1, 98) if f(s, 2)))
Вариант 3
две кучи · неудачный ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в одну из куч 1 камень; – увеличить количество камней в одной из куч в 3 раза. Например, пусть в одной куче 10 камней, а в другой — 7; такую позицию обозначим (10, 7). За один ход из неё можно получить любую из позиций: (10, 8), (10, 21), (11, 7), (30, 7). Игра завершается, когда суммарное количество камней в кучах становится не менее 78. Победителем считается игрок, сделавший последний ход. В начальный момент в первой куче было 5 камней, во второй — S камней, 1 ≤ S ≤ 72.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, при котором такая ситуация возможна.
Разбор
Рассуждение. Здесь не требуется, чтобы Ваня выигрывал при любом ходе Пети: Петя ошибся. Нужна наименьшая S, из которой существует ход Пети в позицию, где Ваня выигрывает одним ходом.
Проверка ответа. При S = 9 Петя может сделать ход в (5, 27), а Ваня из неё сразу завершает игру: (5, 27) → (5, 81).
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 9
Решение на Python.
def f(a, b, m):
if a + b >= 78:
return m % 2 == 0
if m == 0:
return False
h = [f(x, y, m - 1) for x, y in ((a + 1, b), (a * 3, b), (a, b + 1), (a, b * 3))]
return any(h) # неудачный ход Пети: достаточно одного хода
print(min(s for s in range(1, 73) if f(5, s, 2)))
Вариант 4
одна куча, растёт · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в кучу 1 камень; – добавить в кучу 5 камней; – увеличить количество камней в куче в 2 раза. Например, из кучи в 10 камней за один ход можно получить кучу из 11, 15, 20 камней. Игра завершается, когда количество камней в куче становится не менее 67. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 67 или более камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 66.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции 33 Петя может получить 34, 38, 66. Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
29
Ваня выигрывает не позднее 3-го хода
30
Петя выигрывает 3-м ходом
31
Ваня выигрывает 1-м или 2-м ходом
32
Петя выигрывает 2-м ходом
33
Ваня выигрывает 1-м ходом
34
Петя выигрывает 1-м ходом
35
Петя выигрывает 1-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 33
Решение на Python.
def f(s, m):
if s >= 67:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s + 1, s + 5, s * 2)]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(1, 67) if f(s, 2)))
Вариант 5
одна куча, убывает · неудачный ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – убрать из кучи 2 камня; – убрать из кучи 7 камней; – уменьшить количество камней в куче в 3 раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 45 камней за один ход можно получить кучу из 43, 38, 15 камней. Игра завершается, когда количество камней в куче становится не более 25. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 25 или менее камней. В начальный момент в куче было S камней, S ≥ 26.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, при котором такая ситуация возможна.
Разбор
Рассуждение. Здесь не требуется, чтобы Ваня выигрывал при любом ходе Пети: Петя ошибся. Нужна наименьшая S, из которой существует ход Пети в позицию, где Ваня выигрывает одним ходом.
Проверка ответа. При S = 28 Петя может сделать ход в 26, а Ваня из неё сразу завершает игру: 26 → 8.
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 28
Решение на Python.
def f(s, m):
if s <= 25:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s - 2, s - 7, s // 3)]
return any(h) # неудачный ход Пети: достаточно одного хода
print(min(s for s in range(26, 425) if f(s, 2)))
Вариант 6
две кучи · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в одну из куч 1 камень; – увеличить количество камней в одной из куч в 2 раза. Например, пусть в одной куче 10 камней, а в другой — 7; такую позицию обозначим (10, 7). За один ход из неё можно получить любую из позиций: (10, 8), (10, 14), (11, 7), (20, 7). Игра завершается, когда суммарное количество камней в кучах становится не менее 66. Победителем считается игрок, сделавший последний ход. В начальный момент в первой куче было 9 камней, во второй — S камней, 1 ≤ S ≤ 56.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции (9, 28) Петя может получить (9, 29), (9, 56), (10, 28), (18, 28). Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
24
Петя выигрывает 4-м ходом
25
Ваня выигрывает не позднее 3-го хода
26
Петя выигрывает 3-м ходом
27
Петя выигрывает 2-м ходом
28
Ваня выигрывает 1-м ходом
29
Петя выигрывает 1-м ходом
30
Петя выигрывает 1-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 28
Решение на Python.
def f(a, b, m):
if a + b >= 66:
return m % 2 == 0
if m == 0:
return False
h = [f(x, y, m - 1) for x, y in ((a + 1, b), (a * 2, b), (a, b + 1), (a, b * 2))]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(1, 57) if f(9, s, 2)))
Вариант 7
одна куча, убывает · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – убрать из кучи 2 камня; – убрать из кучи 6 камней; – уменьшить количество камней в куче в 3 раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 50 камней за один ход можно получить кучу из 48, 44, 16 камней. Игра завершается, когда количество камней в куче становится не более 30. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 30 или менее камней. В начальный момент в куче было S камней, S ≥ 31.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции 93 Петя может получить 31, 87, 91. Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
89
Петя выигрывает 1-м ходом
90
Петя выигрывает 1-м ходом
91
Петя выигрывает 1-м ходом
92
Петя выигрывает 1-м ходом
93
Ваня выигрывает 1-м ходом
94
Ваня выигрывает 1-м ходом
95
Петя выигрывает 2-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 93
Решение на Python.
def f(s, m):
if s <= 30:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s - 2, s - 6, s // 3)]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(31, 430) if f(s, 2)))
Вариант 8
одна куча, растёт · неудачный ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в кучу 1 камень; – добавить в кучу 4 камня; – увеличить количество камней в куче в 3 раза. Например, из кучи в 10 камней за один ход можно получить кучу из 11, 14, 30 камней. Игра завершается, когда количество камней в куче становится не менее 116. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 116 или более камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 115.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, при котором такая ситуация возможна.
Разбор
Рассуждение. Здесь не требуется, чтобы Ваня выигрывал при любом ходе Пети: Петя ошибся. Нужна наименьшая S, из которой существует ход Пети в позицию, где Ваня выигрывает одним ходом.
Проверка ответа. При S = 13 Петя может сделать ход в 39, а Ваня из неё сразу завершает игру: 39 → 117.
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 13
Решение на Python.
def f(s, m):
if s >= 116:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s + 1, s + 4, s * 3)]
return any(h) # неудачный ход Пети: достаточно одного хода
print(min(s for s in range(1, 116) if f(s, 2)))
Вариант 9
две кучи · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в одну из куч 1 камень; – увеличить количество камней в одной из куч в 2 раза. Например, пусть в одной куче 10 камней, а в другой — 7; такую позицию обозначим (10, 7). За один ход из неё можно получить любую из позиций: (10, 8), (10, 14), (11, 7), (20, 7). Игра завершается, когда суммарное количество камней в кучах становится не менее 41. Победителем считается игрок, сделавший последний ход. В начальный момент в первой куче было 8 камней, во второй — S камней, 1 ≤ S ≤ 32.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции (8, 16) Петя может получить (8, 17), (8, 32), (9, 16), (16, 16). Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
12
Петя выигрывает 4-м ходом
13
Ваня выигрывает не позднее 3-го хода
14
Петя выигрывает 3-м ходом
15
Петя выигрывает 2-м ходом
16
Ваня выигрывает 1-м ходом
17
Петя выигрывает 1-м ходом
18
Петя выигрывает 1-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 16
Решение на Python.
def f(a, b, m):
if a + b >= 41:
return m % 2 == 0
if m == 0:
return False
h = [f(x, y, m - 1) for x, y in ((a + 1, b), (a * 2, b), (a, b + 1), (a, b * 2))]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(1, 33) if f(8, s, 2)))
Вариант 10
одна куча, убывает · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – убрать из кучи 1 камень; – убрать из кучи 6 камней; – уменьшить количество камней в куче в 3 раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 40 камней за один ход можно получить кучу из 39, 34, 13 камней. Игра завершается, когда количество камней в куче становится не более 20. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 20 или менее камней. В начальный момент в куче было S камней, S ≥ 21.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Разбор
Рассуждение. Сначала находим позиции, из которых можно выиграть одним ходом. Нужная S — наименьшая, для которой все ходы Пети ведут именно в такие позиции.
Проверка ответа. Из позиции 63 Петя может получить 21, 57, 62. Из каждой из них Ваня одним ходом завершает игру, а сам Петя первым ходом выиграть не может.
S
Кто и когда выигрывает при правильной игре
59
Петя выигрывает 1-м ходом
60
Петя выигрывает 1-м ходом
61
Петя выигрывает 1-м ходом
62
Петя выигрывает 1-м ходом
63
Ваня выигрывает 1-м ходом
64
Петя выигрывает 2-м ходом
65
Ваня выигрывает 1-м или 2-м ходом
Как работает программа. f(позиция, m) отвечает на вопрос: «выиграет ли нужный игрок не позднее, чем за m ходов (считая ходы обоих)». На нечётных шагах ходит тот, кто должен выиграть, — ему достаточно одного удачного хода (any); на чётных ходит соперник — выигрыш должен получаться при любом его ходе (all).
Ответ: 63
Решение на Python.
def f(s, m):
if s <= 20:
return m % 2 == 0
if m == 0:
return False
h = [f(x, m - 1) for x in (s - 1, s - 6, s // 3)]
return any(h) if m % 2 != 0 else all(h)
print(min(s for s in range(21, 420) if f(s, 2)))
Для самостоятельного решения
Варианты 11–15 без разборов. Ответ можно проверить кнопкой.
Вариант 11
одна куча, растёт · неудачный ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в кучу 1 камень; – добавить в кучу 3 камня; – увеличить количество камней в куче в 2 раза. Например, из кучи в 10 камней за один ход можно получить кучу из 11, 13, 20 камней. Игра завершается, когда количество камней в куче становится не менее 89. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 89 или более камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 88.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, при котором такая ситуация возможна.
Вариант 12
одна куча, убывает · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – убрать из кучи 1 камень; – убрать из кучи 7 камней; – уменьшить количество камней в куче в 4 раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 35 камней за один ход можно получить кучу из 34, 28, 8 камней. Игра завершается, когда количество камней в куче становится не более 15. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 15 или менее камней. В начальный момент в куче было S камней, S ≥ 16.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Вариант 13
две кучи · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в одну из куч 1 камень; – увеличить количество камней в одной из куч в 2 раза. Например, пусть в одной куче 10 камней, а в другой — 7; такую позицию обозначим (10, 7). За один ход из неё можно получить любую из позиций: (10, 8), (10, 14), (11, 7), (20, 7). Игра завершается, когда суммарное количество камней в кучах становится не менее 51. Победителем считается игрок, сделавший последний ход. В начальный момент в первой куче было 8 камней, во второй — S камней, 1 ≤ S ≤ 42.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.
Вариант 14
одна куча, растёт · неудачный ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – добавить в кучу 1 камень; – добавить в кучу 5 камней; – увеличить количество камней в куче в 3 раза. Например, из кучи в 10 камней за один ход можно получить кучу из 11, 15, 30 камней. Игра завершается, когда количество камней в куче становится не менее 34. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 34 или более камней. В начальный момент в куче было S камней, 1 ≤ S ≤ 33.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, при котором такая ситуация возможна.
Вариант 15
одна куча, убывает · любой ход Пети
Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит куча камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может: – убрать из кучи 1 камень; – убрать из кучи 7 камней; – уменьшить количество камней в куче в 2 раза (количество камней, полученное при делении, округляется до меньшего). Например, из кучи в 50 камней за один ход можно получить кучу из 49, 43, 25 камней. Игра завершается, когда количество камней в куче становится не более 30. Победителем считается игрок, сделавший последний ход, то есть первым получивший кучу из 30 или менее камней. В начальный момент в куче было S камней, S ≥ 31.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника.
Укажите минимальное значение S, при котором Петя не может выиграть за один ход, но при любом ходе Пети Ваня может выиграть своим первым ходом.