最大收益(map练习3)

提交数: 1086, 通过率: 28.27%, 平均分: 71.99

题目描述:

商店里有n种商品和k个按顺序给出的订单。每种商品给定名称、收益和库存。每个订单给出需求商品和需求数量。编程判断是否能依次满足所有的订单,如果可以,输出收益;否则,输出“-X“,X表示第一个无法满足的订单编号。

输入格式:

第1行2个整数n和k,k<=n<=10^5。

下面的n行,每行表示一种商品的名称、收益、库存3种信息。

再下面的若干行,每行表示一个订单的需求商号和需求数量两种信息。

每种商品的个数保证在int范围内,保证每个订单中都不会出现没有的商品,商品名的长度<=20。

具体参见输入样例。

输出格式:

一行一个整数,表示收益,或者”-X“,X表示第一个无法满足的订单编号。

样例输入:

3 5
apple 1 100
pear 5 90
football 30 10
pear 24
apple 18
football 4
pear 1
football 6

样例输出:

443

提示:

map的应用。

建议用一个map,储存的类型是结构体。

使用两个map,算法是对的,但查找所耗的时间多一点,要分别在两个map上查找。

时间限制: 1500ms
空间限制: 256MB