#P1443. 2024.10.30-秋招-第1题-套餐销售
-
ID: 162
Type: Default
1000ms
256MiB
Tried: 348
Accepted: 68
Difficulty: 3
Uploaded By:
TaZi
Tags>模拟自定义排序
2024.10.30-秋招-第1题-套餐销售
题目内容
H餐饮公司为增加销量,以一种主打食物搭配其他若干种小食或饮料,组成一种套餐来销售。例如
0:牛肉汉堡+薯条+可乐;
1:牛肉汉堡+鸡翅+可乐;
2:牛肉饭+鸡翅+牛肉汤
公司为了国庆节的促销活动,提供了如下信息:
1.每种套餐的主食ID以及套餐成本、利润等信息,表示为[主食ID,套餐成本,套餐利润];
2.主食是有限制的,表示为[主食ID,选择数量上限],如100 1,意味着以100为主食的套餐仅有一份。
3.小食没有限制。
4.所有套餐信息,按行描述,套餐从0开始索引。 现在要为公司选出指定数量NUM款套餐参加国庆节的促销活动,具体选择策略如下:
1.优先选择成本低的套餐;
2.如果成本相同,则优先选择利润较高的;
3.如果成本相同,利润也相同,则优先选择套餐索引小的;
4.给出限制的主食不能超过其支持的限制数量,没有给出限制的主食不限制数量。
如果能成功选出NUM款套餐,则返回它们的套餐索引集合,并按照从小到大排列,否则返回−1。
输入描述
第一行一个整数M,表示套餐的数量,取值范围[1,10000]。
接下来M行,每行代表一款套餐,套餐索引从0开始,每行三个整数,分别表示主食ID,成本,利润。
接下来一行一个整数N,表示限制limit的数量,取值范围[1,10000]。
接下来N行,每行两个整数,分别表示主食ID,限制数量。
最后一行一个整数NUM,表示推出套餐的数量,取值范围[1,10000]。
其中主食ID,成本,利润,取值范围也都为[1,10000]
输出描述
购买的套餐索引,升序排列,如果不能则返回−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
说明
公司推出6种套餐组合,索引从0−5。
按排序规则,优先选择成本为10的套餐,利润一样,按索引排序为索引1即[200 10 10],索引3即[200 10 10]。
成本20的套餐,按利润排序为索引4,索引5。
成本30的套餐,索引0。成本50的套餐,索引2。
最后根据限制条件主食200、100的套餐限制为1款,输出结果按照套餐索引升序排列0 1 4。
样例2
输入
3
100 30 10
200 10 10
100 50 20
2
100 1
200 1
3
输出
-1
说明
由于100,200的限制都为1,所以只能选择两款套餐,数量不足,返回−1
通知
扫码备注华为交流群~期待您的到来
- 湘ICP备2023007293号
- Worker 0, 19ms
- Powered by Hydro v4.14.1 Community