在 魔能市集 中,小慕负责管理一套神秘的 魔法订购系统,帮助魔法师们购买所需的魔法物资。订购完成后,市集会按照魔法规则发货并更新订购状态。然而,发货时需要特别的魔法仪式,而所有物资的管理也必须遵循严格的顺序。 请设计一个支持以下操作的 魔法订购系统: 1. 水晶初始化 用于初始化魔法订购系统,清空所有历史数据。 2. 魔法订购 - 参数:`魔法师ID`、`订购物资类型`(可以为多个类型)。 - 每个魔法师可以订购任意数量的物资类型,物资可以重复订购。相同类别的物资如果已经订购了,再订购,则忽略这类物资。 - 系统会记录魔法师的订购信息,等待发货。 3. 发货仪式 - 参数:`物资类型`(一次仅发货一种类型)。 - 如果多个魔法师订购了该类型的物资,视为 所有相关魔法师均收到该物资。 - 系统会更新对应魔法师的订购状态,将已发货的物资从他们的待发货列表中移除。 4. 魔法查询 - 系统按照以下规则返回所有魔法师的ID: - 按照 降序 排列。 - 如果未发货数量相同,则按照 魔法师ID升序 排列。
提示:带虚线的词点一下有通俗解释。
输入描述
1. 第一行包含整数 `Q`,表示操作的数量。 2. 接下来的 `Q` 行表示若干操作,具体格式如下: - `MagicOrderSystem` 初始化系统操作。 - `place_order`:随后输入一个整数 `wizard_id` 和一个整数 `items` 的长度,接着是`items`数组。 - `deliver_item`:随后输入一个整数 `item_type`。 - `query_status`:查询所有魔法师的订购状态。
输出描述
1. 对于 `MagicOrderSystem` 操作,输出 `null`。 2. 对于 `place_order` 操作,输出这个魔法师当前订购物资类型数量。 3. 对于 `deliver_item` 操作,输出需要向多少个魔法师发货。 4. 对于 `query_status` 操作,按规则返回所有魔法师的订购状态(具体格式见样例输出)。
示例
示例 1
输入
9 MagicOrderSystem place_order 1 3 101 102 103 place_order 2 2 102 104 place_order 3 1 101 deliver_item 102 query_status place_order 4 2 101 105 deliver_item 101 query_status
输出
null 3 2 1 2 1 2 3 2 3 1 2 4 3
说明:MagicOrderSystem() place_order(1, [101, 102, 103]) place_order(2, [102, 104]) place_order(3, [101]) deliver_item(102) query_status() place_order(4, [101, 105]) deliver_item(101) query_status()
时间限制 1000 ms · 内存限制 128 MB