返回首页 返回题库

优先购买

C++ 简单 GESP四级真题 #结构体#排序

题目描述

题面描述

小 A 有 元预算。商店有 个商品,每个商品有商品名 、价格 和优先级 三种属性,其中 为正整数,且 越小代表商品的优先级越高。

小 A 的购物策略为:

  • 总是优先买优先级最高的东西;
  • 如果有多个最高优先级商品,购买价格最低的;
  • 如果有多个优先级最高且价格最低的商品,购买商品名字典序最小的。

小 A 想知道能购买哪些商品。

输入格式

第一行两个正整数 ,代表预算和商品数。

之后 行,每行一个商品,依次为 ,代表第 个商品的商品名、价格、优先级。

数据保证不存在两个名字相同的商品。

输出格式

按照字典序从小到大的顺序,输出所有购买商品的商品名。

样例1

输入:

20 4
apple 6 8
bus 15 1
cab 1 10
water 4 8

输出:

bus
cab
water

样例2

输入:

10 3
pen 2 3
book 5 2
eraser 3 2

输出:

book
eraser
pen

数据范围

对于所有测试点,保证 。商品名仅由小写字母组成且不存在两个相同的商品名。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
本题核心考察多关键字排序的实现,需要先按照购物策略的优先级规则对商品进行排序,然后依次购买直到预算不足,最后将买到的商品按照名字典序排序后输出。需要注意C++中字符串的字典序比较可以直接使用小于号,结构体自定义排序规则要严格对应题目要求的优先级顺序。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 13 浏览

讨论(0)