Ctrl K

Дешёвая нарезка многоугольника

Средняя
Дан выпуклый многоугольник, у каждой вершины которого есть целая метка. labels[i] — метка i-й вершины при обходе по часовой стрелке. Многоугольник с n вершинами нужно разрезать непересекающимися диагоналями на n − 2 треугольника. Стоимость треугольника — произведение меток трёх его вершин, стоимость разрезания — сумма стоимостей всех треугольников. Верните наименьшую возможную стоимость разрезания.
Пример 1
labels=[2, 5, 3] → 30

Это уже треугольник: стоимость 2 · 5 · 3 = 30.

Пример 2
labels=[1, 6, 2, 6] → 24

Диагональ между вершинами с метками 1 и 2 даёт 1 · 6 · 2 + 1 · 2 · 6 = 24. Другая диагональ дала бы 1 · 6 · 6 + 6 · 2 · 6 = 108.

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

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