Ctrl K

Слияние соседних кучек группами

Сложная
В ряд выложены кучки песка, в i-й кучке piles[i] вёдер. За один ход можно взять ровно group **соседних** кучек и ссыпать их в одну; ход стоит столько, сколько всего вёдер в этих кучках. Новая кучка встаёт на их место в ряду. Верните минимальную суммарную стоимость, за которую весь песок можно собрать в одну кучку. Если это невозможно, верните -1.
Пример 1
piles=[4, 1, 2, 6], group=2 → 23

Сливаем 1 и 2 (стоимость 3), затем 4 и 3 (стоимость 7), затем 7 и 6 (стоимость 13). Итого 23 — меньше не получится.

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

Кучек всего две, а сливать можно только по три — собрать одну кучку невозможно.

Пример 3
piles=[2, 7, 1, 3, 5], group=3 → 27
Ограничения
  • 1 ≤ len(piles) ≤ 30
  • 1 ≤ piles[i] ≤ 100
  • 2 ≤ group ≤ 30
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый тяжёлый день чтения СложнаяРазрезать торт с ягодами СложнаяРейсы парома со склада СложнаяСлияние плиток спереди СложнаяМонеты из стопок Сложная
загружаем Python…
Вход
piles=[4, 1, 2, 6], group=2
Ожидается
23

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