Ctrl K

Прыжки с оплатой при взлёте

Средняя
Клетки дорожки пронумерованы с нуля, на клетке i написано число values[i]. Вы стоите на клетке 0 и хотите попасть на последнюю. Прыгать можно только вперёд — на любую клетку с большим номером. Прыжок с клетки i на клетку j приносит (j - i) * values[i] очков: длина прыжка, умноженная на число клетки, откуда вы прыгнули. Верните наибольшую сумму очков, которую можно набрать по пути до последней клетки.
Пример 1
values=[2, 5, 1, 1, 3] → 17

Прыжок с 0 на 1 даёт 1 · 2 = 2, затем с 1 сразу в конец: 3 · 5 = 15. Итого 17.

Пример 2
values=[6, 2, 4, 1] → 18

Выгоднее всего один прыжок с самого начала в конец: 3 · 6 = 18.

Пример 3
values=[9] → 0

Мы уже на последней клетке — прыгать не нужно, счёт 0.

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

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