当前位置:首页>python>【GESP】2025年12月Python四级 -- 优先购买

【GESP】2025年12月Python四级 -- 优先购买

  • 2026-09-24 21:42:46
【GESP】2025年12月Python四级 -- 优先购买

跟老马一起“升级打怪”学编程!

旨在为小朋友们提供全面的学习材料,共同为等级考试做好准备。

添加小助手微信,回复【GESP四级2025.12_优先购买】,获取本题源代码。

GESP四级2025.12_优先购买

【提交】

https://www.luogu.com.cn/problem/B4452

【问题描述】

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

小 A 的购物策略为:

  • 总是优先买优先级最高的东西;

  • 如果有多个最高优先级商品,购买价格最低的;

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

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

【输入描述】

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

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

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

【输出描述】

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

【样例输入1】

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

【样例输出1】

buscabwater

【数据范围】

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

参考程序:

'''[GESP202512 四级] 优先购买https://www.luogu.com.cn/problem/B4452'''M, N = list(map(int, input().split()))items = []for _ in range(N):    name, price, priority = input().split()    items.append((name, int(price), int(priority)))# 排序规则:优先级升序,价格升序,名字字典序升序items.sort(key=lambda x: (x[2], x[1], x[0]))# 贪心购买bought = []for name, price, _ in items:if price <= M:        bought.append(name)        M -= price# 将购买的商品按字典序排序后输出bought.sort()for name in bought:    print(name)

青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章