题目描述
2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下:
1、首先gold medal数量多的排在前面;
2、其次silver medal数量多的排在前面;
3、然后bronze medal数量多的排在前面;
4、若以上三个条件仍无法区分名次,则以国家名称的字典序排定。
我们假设国家名称不超过20个字符、各种奖牌数不超过100,且大于等于0。
解答要求时间限制:1000ms, 内存限制:64MB
输入
第一行输入一个整数N(0<N<21),代表国家数量;
然后接下来的N行,每行包含一个字符串Namei表示每个国家的名称,和三个整数Gi、Si、Bi表示每个获得的gold medal、silver medal、bronze medal的数量,以空格隔开,如(China 51 20 21),具体见样例输入。
输出
输出奖牌榜的依次顺序,只输出国家名称,各占一行,具体见样例输出。
首先我们要注意题目中对奖牌数的排序和对国家名称的排序是不一样的,对奖牌数是从大到小,对国家名称是按照字典序排列的,为了便于进行排序,我们可以将奖牌数前面天津爱一个负号,这样使两个排序的元素都从小到大,具体Python代码如下:
import bisectdef func():n = int(input().strip())alist = []for i in range(n):name, gold, silver, bronze
本文发布于:2024-01-30 22:32:36,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170662515723294.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |