在魔法世界的云端仓库中,小慕负责管理所有魔力卷轴的库存信息。他需要实现一套库存管理系统,能够处理查询、更新和删除卷轴的指令。 系统支持以下指令:`MagicScrollManager`、`query_stock`、`update_stock`、`delete_scroll`。 --- 一、指令说明 1. 系统初始化 第一条指令必须为:
MagicScrollManager无参数,输出:`null`。 --- 2. 查询卷轴库存 指令格式:
query_stock行为: - 若卷轴 `` 存在 → 输出库存数量。 - 若不存在 → 输出 `-1`,并将 requestId 加入“”。 --- 3. 更新卷轴库存 指令格式:
update_stock行为: - 若卷轴不存在 → 创建并设置库存为 ``。 - 若卷轴已存在 → 更新库存数量。 - 若存在未响应查询 → 。随后删除掉所有未响应查询 requestId 。 - 若 不存在任何未响应查询 → 输出:`-1`。 --- 4. 删除卷轴 指令:
delete_scroll若卷轴存在则删除,否则忽略。输出:`null`。
提示:带虚线的词点一下有通俗解释。
输入描述
- 第一行输入整数 Q,表示指令总数。 - 每条指令名称单独占一行。 - 指令名后面的参数也分别独立占一行。 指令参数格式如下: - `MagicScrollManager`:无参数。 - `query_stock`:下一行输入 requestId,再下一行输入 scrollCode。 - `update_stock`:下一行输入 scrollCode,再下一行输入 quantity。 - `delete_scroll`:下一行输入 scrollCode。
输出描述
每次指令输出一行内容: - `MagicScrollManager` → 输出 `null` - `query_stock` → 输出库存数量或 `-1` - `update_stock`: - 有待处理查询 → 输出所有 requestId(空格分隔) - 无待处理查询 → 输出 `-1` - `delete_scroll` → 输出 `null`
示例
示例 1
输入
8 MagicScrollManager update_stock FIRE01 40 update_stock FIRE01 90 query_stock 12 FIRE01 delete_scroll FIRE01 query_stock 77 FIRE01 delete_scroll FIRE01 update_stock FIRE01 150
输出
null -1 -1 90 null -1 null 77
说明:MagicScrollManager 初始化系统,输出:null update_stock / FIRE01 / 40 新建卷轴 FIRE01,当前没有等待处理的查询,输出:-1 update_stock / FIRE01 / 90 更新卷轴 FIRE01 的库存为 90,仍然没有等待处理的查询,输出:-1 query_stock / 12 / FIRE01 卷轴 FIRE01 存在,库存为 90,输出:90 delete_scroll / FIRE01 删除卷轴 FIRE01,输出:null query_stock / 77 / FIRE01 卷轴 FIRE01 不存在,查询失败,输出:-1,并把请求 77 加入等待列表。 delete_scroll / FIRE01 卷轴本来就不存在,删除无效果,输出:null update_stock / FIRE01 / 150 重新创建卷轴 FIRE01,发现有等待它的查询 77,将其返回并清空等待列表,输出:77
时间限制 1000 ms · 内存限制 128 MB