Ctrl K

Гасим фонари с наибольшей выгодой

Сложная
Вдоль аллеи в ряд висят фонари, у каждого своя яркость: lights[i]. Смотритель гасит их по одному, пока не погасит все, и порядок выбирает сам. Когда он гасит фонарь, он получает очки: яркость этого фонаря, умноженную на яркость ближайшего ещё горящего фонаря слева и ближайшего ещё горящего фонаря справа. Если с какой-то стороны горящих фонарей не осталось, вместо соседа берётся 1. Погашенный фонарь из ряда выпадает, и его бывшие соседи становятся соседями друг другу. Верните наибольшее число очков, которое смотритель может набрать.
Пример 1
lights=[2, 4, 3] → 33

Выгоднее всего сначала погасить 4 (2·4·3 = 24), затем 2 (1·2·3 = 6), затем 3 (1·3·1 = 3): всего 33.

Пример 2
lights=[6] → 6

Фонарь один, соседей нет, обе стороны считаются единицами: 1·6·1 = 6.

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

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