#967. 优先购买
优先购买
题目描述
小 有 元预算。商店有 个商品,每个商品有商品名 、价格 和优先级 三种属性,其中 为正整数,且 越小代表商品的优先级越高。
小 的购物策略为:
- 总是优先购买优先级最高的商品(即 值最小的商品);
- 如果有多个最高优先级商品,购买价格 最低的;
- 如果有多个优先级最高且价格最低的商品,购买商品名 字典序最小的。
小 会不断按照上述策略挑选并购买商品,直到剩余预算不足以购买任何符合条件的商品。每个商品只能购买一次。请你输出小 购买的所有商品的商品名,并按字典序从小到大排序。
输入格式
第一行包含两个正整数 和 —— 分别代表预算和商品总数。
接下来的 行,每行描述一个商品,依次为字符串 、整数 和整数 ,分别代表第 个商品的商品名、价格和优先级。
数据保证不存在两个名字相同的商品。
输出格式
按照字典序从小到大的顺序,输出所有购买商品的商品名,每个名字占一行。
样例输入 1
20 4
apple 6 8
bus 15 1
cab 1 10
water 4 8
样例输出 1
bus
cab
water
说明
样例解释
- 小 初始有 元。
- 优先级最高的是 (),价格为 ,购买后剩余 元。
- 剩余商品中,优先级最高的是 () 和 ()。两者中 价格更低,购买后剩余 元。
- 剩余商品中,优先级最高的是 (),但预算 元不足以购买。
- 下一个优先级最高的是 (),价格为 ,刚好可以购买,购买后剩余 元。
- 最终购买了 三件商品。按字典序排序后输出为 。
数据范围
对于所有测试点,保证:
- 。
- 。
- 。
- 。
- 保证商品名仅由小写字母组成,且不存在两个相同的商品名。
- 保证所有的输入数值均为整数。