Ctrl K

Заказы из одинаковых деталей

Сложная
На складе лежат детали, items[i] — артикул i-й детали; детали с одинаковым артикулом одинаковы. Есть orders — заказы покупателей: orders[j] — сколько деталей хочет получить j-й покупатель. Можно ли выполнить все заказы сразу, если: - j-й покупатель получает ровно orders[j] деталей; - все детали в одном заказе имеют один и тот же артикул; - каждую деталь можно отдать только одному покупателю? Лишние детали могут остаться на складе. Верните True, если это возможно, иначе False.
Пример 1
items=[7, 7, 7, 2, 2, 5], orders=[2, 3] → True

Покупатель с заказом 3 берёт три семёрки, с заказом 2 — две двойки.

Пример 2
items=[1, 1, 2, 2, 3, 3], orders=[3] → False

Ни одного вида не набирается три штуки, а смешивать нельзя.

Пример 3
items=[4, 4, 4, 4, 4], orders=[2, 2] → True
Ограничения
  • 1 ≤ len(items) ≤ 10⁵
  • 1 ≤ items[i] ≤ 1000
  • Различных артикулов не больше 50
  • 1 ≤ len(orders) ≤ 10
  • 1 ≤ orders[j] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКак рассчитаться за меньше переводов СложнаяЦепочки с квадратными суммами СложнаяЛучший набор слов из фишек СложнаяЧестно поделить задания СложнаяКвадратная рамка из палочек Средняя
загружаем Python…
Вход
items=[7, 7, 7, 2, 2, 5], orders=[2, 3]
Ожидается
True

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