小慕正在开发一个名为 “采购数据管理模块” 的项目,用于管理多家供应商的采购记录。他希望实现一个简易的采购统计系统,系统需要支持以下功能: * ProcurementManager() —— 系统初始化(创建存储各供应商采购数据的结构,初始无任何采购记录)。 * recordPurchase(int supplierId, int productType, int cost) —— 记录某供应商 `supplierId` 的一次采购数据:采购金额为 `cost`,`productType` 仅取值为 1、2、3,分别代表电子元器件、机械零件、包装材料。 * querySuppliers() —— 返回已有采购记录的供应商编号列表,若无符合条件的供应商则输出空行: * :供应商的累计采购金额 升序 排列; * :若累计采购金额相同,则按供应商编号 降序 排列。 * queryTotalCost(int supplierId, int productType) —— 返回指定供应商 `supplierId` 中,某类产品 `productType` 的累计采购金额;若该供应商无此类产品的采购记录(或供应商无任何采购记录),则返回 `0`。
提示:带虚线的词点一下有通俗解释。
输入描述
* 第一行输入一个整数 `Q`,表示函数调用次数。 * 接下来共 `Q` 次操作,每次输入包含: * 一行字符串表示函数名称: * `"ArcaneScrollProcureSystem"` —— 初始化系统,无参数; * `"recordProcure"` —— 三个参数,分别为: * `shopId`(商铺编号,`0 <= shopId <= 10`) * `scrollType`(卷轴类型,`1 <= scrollType <= 3`) * `manaCost`(本次采购消耗魔力值,`0 < manaCost <= 100`) * `"queryTotalProcure"` —— 两个参数: * `shopId` * `scrollType` * `"queryShops"` —— 无参数。 * 每个参数均单独占一行输入。
输出描述
* 对每次函数调用,输出对应结果: * `"ArcaneScrollProcureSystem"` 和 `"recordProcure"` 输出 `"null"`。 * `"queryTotalProcure"` 输出一个整数。 * `"queryShops"` 输出一行,商铺编号按空格分隔;若结果为空,则输出一个空行。
示例
示例 1
输入
20 ArcaneScrollProcureSystem recordProcure 3 1 20 recordProcure 1 2 15 recordProcure 2 3 40 recordProcure 3 2 10 recordProcure 0 1 5 recordProcure 0 2 5 recordProcure 4 1 30 recordProcure 5 3 25 recordProcure 5 1 25 queryTotalProcure 3 1 queryTotalProcure 3 2 queryTotalProcure 1 1 queryShops recordProcure 2 1 15 recordProcure 1 1 10 queryShops queryTotalProcure 2 3 queryTotalProcure 4 2 queryShops
输出
null null null null null null null null null null 20 10 0 0 1 4 3 2 5 null null 0 1 4 3 5 2 40 0 0 1 4 3 5 2
说明:1. 初始化系统。 2. 商铺3采购火焰卷轴20。 3. 商铺1采购寒冰卷轴15。 4. 商铺2采购幻影卷轴40。 5. 商铺3采购寒冰卷轴10(累计30)。 6. 商铺0采购火焰卷轴5。 7. 商铺0采购寒冰卷轴5(累计10)。 8. 商铺4采购火焰卷轴30。 9. 商铺5采购幻影卷轴25。 10. 商铺5采购火焰卷轴25(累计50)。 11. 查询商铺3的火焰卷轴累计(20)。 12. 查询商铺3的寒冰卷轴累计(10)。 13. 查询商铺1的火焰卷轴累计(0)。 14. 查询所有商铺排序(结果:0 1 4 3 2 5)。 15. 商铺2采购火焰卷轴15(累计55)。 16. 商铺1采购火焰卷轴10(累计25)。 17. 查询所有商铺排序(结果:0 1 4 3 5 2)。 18. 查询商铺2的幻影卷轴累计(40)。 19. 查询商铺4的寒冰卷轴累计(0)。 20. 查询所有商铺排序(结果:0 1 4 3 5 2)。
时间限制 1000 ms · 内存限制 128 MB