Описание задачи
Сравнить список товаров на складе (Warehouse) с результатами инвентаризации (Inventory). Найти пропавшие и лишние товары.
Требования к решению
- Считать два списка:
Warehouse— товары, которые должны быть на складеInventory— товары, которые отсканировали при проверке
- Найти пропавшие (Missing): коды, которые есть в Warehouse, но не найдены в Inventory
- Найти лишние (Unassigned):
- Коды, которых нет в Warehouse
- Коды с
?, которые не удалось сопоставить - Дублирующиеся сканирования (больше, чем на складе)
Формат входных данных
> Warehouse:
код1
код2
...
> Inventory:
код1
код2
...
Коды в Inventory могут содержать ? — неизвестная цифра.
Формат выходных данных
Missing: N
* Kx код1
* Kx код2
Unassigned: M
* тип код1
* тип код2
Где тип — 0 (невалидный код) или 1 (код с ?, который не сопоставился).
Пример
Input
> Warehouse:
12345
98374
12345
12345
684575
> Inventory:
12345
12345
98374
98374
8888888888
68????
Output
Missing: 2
* 1x 12345
* 1x 684575
Unassigned: 3
* 0 8888888888
* 0 98374
* 1 68????
Объяснение: На складе было 3× 12345, отсканировано 2 → пропал 1.
684575 не отсканирован. 8888888888 — неизвестный код. Второй
98374 — лишний. 68???? — не сопоставлен.
Ключевые моменты
- Учитывать количество каждого кода (мультимножество)
- Коды с
?пытаемся сопоставить с кодами из Warehouse - Порядок вывода — по количеству пропавших или в порядке появления