Ctrl K

Бери из любой кучки

Средняя
На столе несколько кучек камней, их размеры — в массиве piles. Двое играют по очереди, первый начинает. За ход игрок выбирает любую непустую кучку и забирает из неё сколько угодно камней — хотя бы один. Кто не может сделать ход, проигрывает. Оба играют наилучшим образом. Верните True, если побеждает первый игрок, и False, если второй. Перебор состояний здесь укладывается в ограничения, но существует и решение за линейное время.
Пример 1
piles=[4] → True

Первый игрок забирает всю кучку сразу, второму ходить нечем.

Пример 2
piles=[3, 3] → False

Второй игрок просто повторяет ходы первого в другой кучке. Кучки всегда остаются равными, и последний ход достаётся второму.

Пример 3
piles=[2, 5, 1] → True

Первый игрок берёт 2 камня из кучки 5 и получает [2, 3, 1]; после этого второй игрок проигрывает при любой игре.

Ограничения
  • 1 ≤ len(piles) ≤ 7
  • 1 ≤ piles[i] ≤ 7
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДуэль на стирание с XOR СложнаяГонка из общей кучки чисел СредняяДуэль за крайние карты СредняяДуэль за крайние кучки СредняяРастущий лимит на сундуки Средняя
загружаем Python…
Вход
piles=[4]
Ожидается
True

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 80 тестов на сервере, включая скрытые.