Ctrl K

Абонементы на электричку

Средняя
Вы заранее знаете, в какие дни года поедете на электричке: номера дней (от 1 до 365) перечислены по возрастанию в массиве trip_days. В кассе продаются три абонемента: - на 1 день — за prices[0]; - на 7 дней подряд — за prices[1]; - на 30 дней подряд — за prices[2]. Абонемент действует с дня покупки: например, недельный, купленный в 10-й день, покрывает дни с 10-го по 16-й включительно. Верните минимальную сумму, которую придётся потратить, чтобы каждый день из trip_days был покрыт хотя бы одним абонементом.
Пример 1
trip_days=[3, 4, 5, 6, 40], prices=[3, 10, 50] → 13

Четыре поездки подряд с 3-го по 6-й день: недельный абонемент за 10 дешевле четырёх дневных (12). На 40-й день — дневной за 3. Итого 13.

Пример 2
trip_days=[1, 10, 20, 29], prices=[4, 9, 12] → 12

Все поездки укладываются в 30 дней с 1-го по 30-й, так что один месячный за 12 дешевле всего остального.

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

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