#P1443. 2024.10.30-秋招-第1题-套餐销售

2024.10.30-秋招-第1题-套餐销售

题目内容

HH餐饮公司为增加销量,以一种主打食物搭配其他若干种小食或饮料,组成一种套餐来销售。例如

00:牛肉汉堡+薯条+可乐;

11:牛肉汉堡+鸡翅+可乐;

22:牛肉饭+鸡翅+牛肉汤

公司为了国庆节的促销活动,提供了如下信息:

11.每种套餐的主食IDID以及套餐成本、利润等信息,表示为[主食IDID,套餐成本,套餐利润];

22.主食是有限制的,表示为[主食IDID,选择数量上限],如100 1100\ 1,意味着以100100为主食的套餐仅有一份。

33.小食没有限制。

44.所有套餐信息,按行描述,套餐从0开始索引。 现在要为公司选出指定数量NUMNUM款套餐参加国庆节的促销活动,具体选择策略如下:

1.优先选择成本低的套餐;

2.如果成本相同,则优先选择利润较高的;

3.如果成本相同,利润也相同,则优先选择套餐索引小的;

4.给出限制的主食不能超过其支持的限制数量,没有给出限制的主食不限制数量。

如果能成功选出NUMNUM款套餐,则返回它们的套餐索引集合,并按照从小到大排列,否则返回1-1

输入描述

第一行一个整数MM,表示套餐的数量,取值范围[1,100001,10000]。

接下来MM行,每行代表一款套餐,套餐索引从00开始,每行三个整数,分别表示主食IDID,成本,利润。

接下来一行一个整数NN,表示限制limitlimit的数量,取值范围[1,100001,10000]。

接下来NN行,每行两个整数,分别表示主食IDID,限制数量。

最后一行一个整数NUMNUM,表示推出套餐的数量,取值范围[1,100001,10000]。

其中主食IDID,成本,利润,取值范围也都为[1,100001,10000]

输出描述

购买的套餐索引,升序排列,如果不能则返回1-1

样例1

输入

6
100 30 10
200 10 10
100 50 20
200 10 10
400 20 20
200 20 10
3 
100 1
200 1
400 2
3

输出

0 1 4

说明

公司推出66种套餐组合,索引从050-5

按排序规则,优先选择成本为1010的套餐,利润一样,按索引排序为索引11即[200 10 10200\ 10\ 10],索引33即[200 10 10200\ 10\ 10]。

成本2020的套餐,按利润排序为索引44,索引55

成本3030的套餐,索引00。成本5050的套餐,索引22

最后根据限制条件主食200100200、100的套餐限制为11款,输出结果按照套餐索引升序排列0 1 40\ 1\ 4

样例2

输入

3
100 30 10 
200 10 10
100 50 20
2
100 1
200 1
3

输出

-1

说明

由于100,200100,200的限制都为11,所以只能选择两款套餐,数量不足,返回1-1