Ctrl K

Остаётся лёгкая половина

Сложная
В ряд лежат камни, их веса — массив weights. Игра идёт раундами, очки в начале равны 0. В каждом раунде вы режете текущий ряд на две непустые части: левую и правую. Тяжёлая часть (с большей суммой весов) выбрасывается, а сумма весов лёгкой части прибавляется к вашим очкам; лёгкая часть становится рядом для следующего раунда. Если суммы равны, вы сами выбираете, какую часть оставить. Игра заканчивается, когда в ряду остаётся один камень. Верните наибольшее число очков, которое можно набрать.
Пример 1
weights=[3, 1, 2, 4] → 5

Режем на [3, 1] и [2, 4]: остаётся более лёгкая часть [3, 1], +4. Затем режем её на [3] и [1]: остаётся [1], +1. Итого 5 — больше получить нельзя.

Пример 2
weights=[5, 5] → 5

Части равны, можно оставить любую: +5, и остаётся один камень.

Пример 3
weights=[8] → 0

Камень один, резать нечего — 0 очков.

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

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