Ctrl K

Лучший порядок дегустационного сета

Сложная
Повар собирает дегустационный сет. У каждого блюда есть вкусовая оценка tastes[i] (она может быть отрицательной). Блюда подаются по одному; блюдо, поданное t-м по счёту (с единицы), приносит t · tastes[i] очков. Повар может выбрать любые блюда (или не выбрать ни одного) и подать их в любом порядке. Верните наибольшую возможную сумму очков.
Пример 1
tastes=[-2, 6, -7, 1] → 18

Подаём -2, 1, 6 в таком порядке: -2·1 + 1·2 + 6·3 = 18. Блюдо -7 выгоднее не готовить.

Пример 2
tastes=[3, 5, 1] → 22

Все блюда в порядке возрастания: 1·1 + 3·2 + 5·3 = 22.

Пример 3
tastes=[-4, -1] → 0

Любое меню даёт отрицательную сумму, поэтому лучше не готовить ничего: 0.

Ограничения
  • 1 ≤ len(tastes) ≤ 10⁵
  • -1000 ≤ tastes[i] ≤ 1000
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиНаибольшее число, кратное трём СложнаяПереключения по рёбрам дерева СложнаяОтменить как можно меньше встреч СредняяСамая длинная цепочка отрезков СредняяДобыча, которая делится на троих Средняя
загружаем Python…
Вход
tastes=[-2, 6, -7, 1]
Ожидается
18

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