Ctrl K

Тройка товаров с растущей ценой

Сложная
На полке в ряд стоят n товаров. У товара i цена costs[i] и выгода gains[i]. Нужно выбрать три товара на позициях i < j < k так, чтобы цены строго росли слева направо: costs[i] < costs[j] < costs[k]. Выгода такой тройки — gains[i] + gains[j] + gains[k]. Верните наибольшую выгоду подходящей тройки или -1, если выбрать её нельзя.
Пример 1
costs=[7, 3, 5, 4, 9], gains=[50, 6, 8, 20, 10] → 36

Самый выгодный товар за 7 не подходит: после него дороже только 9, а третьего нет. Лучшая тройка — цены 3 < 4 < 9: 6 + 20 + 10 = 36.

Пример 2
costs=[2, 2, 2, 3], gains=[1, 1, 1, 1] → -1

Цены должны строго расти, а три одинаковые двойки этого не дают — тройки нет, ответ -1.

Пример 3
costs=[1, 2, 3], gains=[4, 5, 6] → 15

Единственная тройка — все три товара: 4 + 5 + 6 = 15.

Ограничения
  • 3 ≤ costs.length = gains.length ≤ 50 000
  • 1 ≤ costs[i] ≤ 5000
  • 1 ≤ gains[i] ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКонтур городской застройки СложнаяМеньшие справа СложнаяСуммы отрезков в заданной полосе СложнаяПары с крутым спадом СложнаяТёмный промежуток между фонарями Сложная
загружаем Python…
Вход
costs=[7, 3, 5, 4, 9], gains=[50, 6, 8, 20, 10]
Ожидается
36

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