Ctrl K

Выбор с лимитом по тегам

Средняя
На складе n товаров: у i-го ценность values[i] и тег tags[i]. Нужно отобрать набор товаров с наибольшей суммарной ценностью, соблюдая два правила: - всего в наборе не больше max_items товаров; - товаров с одним и тем же тегом не больше per_tag. Верните максимальную сумму ценностей такого набора.
Пример 1
values=[7, 6, 5, 3], tags=[1, 1, 1, 2], max_items=3, per_tag=2 → 16

Из тега 1 можно взять только два товара: 7 и 6. Третьим берём 3 из тега 2: 7 + 6 + 3 = 16.

Пример 2
values=[4, 9, 2], tags=[5, 5, 5], max_items=3, per_tag=1 → 9

Все товары с одним тегом, а брать можно по одному — берём 9.

Пример 3
values=[0, 8, 1, 4], tags=[2, 3, 4, 3], max_items=2, per_tag=2 → 12
Ограничения
  • 1 ≤ n = len(values) = len(tags) ≤ 2·10⁴
  • 0 ≤ values[i], tags[i] ≤ 2·10⁴
  • 1 ≤ max_items, per_tag ≤ n
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЗадания с перерывом на остывание СредняяМетки вразнобой СредняяМеньше видов после удаления СредняяПалиндромы из общих букв СредняяБольше трети голосов Средняя
загружаем Python…
Вход
values=[7, 6, 5, 3], tags=[1, 1, 1, 2], max_items=3, per_tag=2
Ожидается
16

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