题目描述
请实现一个Mini订货系统,提供订货、发货、查询功能:
OrderSystem() — 系统初始化。
order(int customerId, string[] goods) — 表示某客户的一次订货,goods每个元素表示一件商品,值为商品种类:
同一客户可以多次订货;单次订货,可对同一种类的商品订购多件。
deliver(string[] goods) — 表示发货多件商品,goods含义同上:每个元素表示一件商品,值为商品种类
依次将每件商品按照订购的先后顺序发给订购这件商品的客户
注:用例保证发的商品一定被某客户订购过。
query() — 查询并返回系统中未发货件数最大的客户Id;若存在并列,返回客户Id较小的;若所有客户都完成发货,返回 -1 。
解答要求
时间限制:1000ms, 内存限制:256MB
输入
每行表示一个函数调用,初始化函数仅首行调用一次,累计函数调用不超过1000次。
1 <= customerId <= 1000, 1 <= goods.length <= 1000, 1 <= goods[i].length <= 10
输出
按顺序输出每个函数的执行结果。注:无返回结果的函数,框架自动输出字符串“null”。
样例
输入样例 1
OrderSystem()
order(99, ["gd1000"])
order(88, ["gd666", "gd555"])
order(99, ["gd666"])
query()
deliver(["gd666"])
query()
输出样例 1
null
null
null
null
88
null
99
提示样例 1
第一次 query 时,客户99 和 客户88 的未发货件数都是 2,返回客户id较小的 88 。
客户88 先订货商品 gd666,所以 deliver([“gd666”]) 发货给客户88。第二次 query 时,客户88 和 客户99 的未发货件数分别为 1 和 2,因此返回 99 。
输入样例 2
OrderSystem()
order(101, ["food", "clothes", "trans", "clothes"])
order(102, ["house", "entertain"])
deliver(["clothes", "house"])
deliver(["entertain", "trans"])
order(102, ["house"])
query()
输出样例 2
null
null
null
null
null
null
101
提示样例 2
前两个order命令后,客户101订购了种类为 [“food”, “clothes”, “trans”, “clothes”] 的4件商品,客户102订购了[“house”, “enterta