Ctrl K

Дуэль за крайние кучки

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

Первый берёт правую кучку 2. Остаётся [2, 9, 4], и соперник, что бы ни взял (2 или 4), открывает девятку. Итог 2 + 9 = 11 против 6.

Пример 2
heaps=[7, 2] → True

Первый сразу берёт 7 и выигрывает 7 : 2.

Пример 3
heaps=[3, 1, 5, 4, 2, 6] → True
Ограничения
  • 2 ≤ len(heaps) ≤ 500
  • len(heaps) чётно
  • 1 ≤ heaps[i] ≤ 500
  • sum(heaps) нечётна
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиДуэль за крайние карты СредняяРастущий лимит на сундуки СредняяОчки за то, что осталось СредняяБери из любой кучки СредняяБери до трёх карт Сложная
загружаем Python…
Вход
heaps=[2, 9, 4, 2]
Ожидается
True

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