Ctrl K

Заработок водителя маршрутки

Средняя
Водитель едет по дороге с остановками, пронумерованными от 1 до stops, только в одну сторону — от меньших номеров к большим. Есть заказы orders, где orders[i] = [from, to, bonus]: пассажир хочет доехать с остановки from до остановки to и готов доплатить bonus. За каждого перевезённого пассажира водитель получает to - from + bonus. В салоне одновременно может ехать только один пассажир, но высадить одного и посадить следующего можно на одной и той же остановке. Верните наибольшую сумму, которую водитель может заработать, выбрав заказы наилучшим образом.
Пример 1
stops=8, orders=[[1, 4, 2], [3, 8, 1], [4, 6, 5]] → 12

Везём первого пассажира с 1 до 4 (3 + 2 = 5), на остановке 4 берём третьего до 6 (2 + 5 = 7): итого 12. Второй заказ (5 + 1 = 6) пересекается с обоими и выгоднее не становится.

Пример 2
stops=10, orders=[[1, 10, 1], [2, 3, 1], [5, 7, 1]] → 10

Длинная поездка даёт 9 + 1 = 10, а две короткие вместе — 2 + 3 = 5. Выгоднее длинная.

Ограничения
  • 1 ≤ stops ≤ 10⁵
  • 1 ≤ orders.length ≤ 3 · 10⁴
  • orders[i].length = 3
  • 1 ≤ from < to ≤ stops
  • 1 ≤ bonus ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСлова, спрятанные в тексте СредняяЛесенка квадратов СредняяПродажа участков по заявкам СредняяЗаклинания без соседей СредняяПодъём по строкам и столбцам Сложная
загружаем Python…
Вход
stops=8, orders=[[1, 4, 2], [3, 8, 1], [4, 6, 5]]
Ожидается
12

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