Ctrl K

Карусель в кондитерской

Средняя
В кондитерской n прилавков стоят по кругу на вращающейся платформе. Прилавок i продаёт конфету за prices[i], и изначально на нём лежит вкус i. Цена привязана к прилавку, а не ко вкусу. За shift_cost можно повернуть платформу с конфетами: вкус, лежавший на прилавке i, переезжает на прилавок (i + 1) mod n — сразу для всех прилавков. Поворачивать можно сколько угодно раз, а покупать — в любой момент между поворотами. Нужно купить по одной конфете каждого из n вкусов. Верните минимальные общие затраты: цены купленных конфет плюс стоимость всех поворотов.
Пример 1
prices=[9, 2, 8], shift_cost=3 → 12

Покупаем вкус 1 за 2. Поворот (3): вкус 0 переезжает на прилавок 1, покупаем за 2. Ещё поворот (3): вкус 2 на прилавке 1, снова 2. Итого 2 + 3 + 2 + 3 + 2 = 12, а без поворотов вышло бы 19.

Пример 2
prices=[4, 5, 6], shift_cost=10 → 15

Поворот слишком дорогой — проще купить всё сразу: 4 + 5 + 6 = 15.

Ограничения
  • 1 ≤ n = len(prices) ≤ 1000
  • 1 ≤ prices[i] ≤ 10⁹
  • 1 ≤ shift_cost ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПростые числа до границы СредняяСамый длинный хребет на маршруте СредняяСамое позднее время из цифр СредняяМесто с лучшим сигналом СредняяХод с захватом линии Средняя
загружаем Python…
Вход
prices=[9, 2, 8], shift_cost=3
Ожидается
12

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