173. 【应-33-2·难】top-k 合并其他

中等 Python 2s 256MB
通过 0/0

📋 题目描述
画饼图时,如果分类太多会让扇形太碎,常见做法是"只显示前 k 大,剩下合成 OTHER"。本题让你模拟这一步:把数据按 value 降序排序(同 value 时按 name 字典升序),前 k 项原样输出,剩余项合并为 OTHER 一项,其 value 等于剩余项 value 之和。 若数据总条数 N <= k,则全部原样输出,不需要 OTHER 行。
📥 输入描述
第一行两个整数 N k(1<=k<=N<=1000)。 接下来 N 行,每行 `name value`(value 是整数),用空格分隔。
📤 输出描述
排序后输出前 k 行 `name value`;如果还有剩余,再追加一行 `OTHER 总和`;否则不输出 OTHER。
输入样例
4
2
A 10
B 20
C 30
D 40
输出样例
D 40
C 30
OTHER 30
提示:排序 key=lambda x: (-x[1], x[0])。 前 k 项直接 print;rest = items[k:],若非空则 print "OTHER", sum(v for _,v in rest)。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!