OJ题——11.OlympicGameyellowstar
题⽬描述
2012伦敦奥运会即将到来,⼤家都⾮常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下:
1. 1、⾸先gold medal数量多的排在前⾯;
2、其次silver medal数量多的排在前⾯;
3、然后bronze medal数量多的排在前⾯;
4、若以上三个条件仍⽆法区分名次,则以国家名称的字典序排定。adventures
我们假设国家名称不超过20个字符、各种奖牌数不超过100,且⼤于等于0。caterpillar怎么读
解答要求时间限制:1000ms, 内存限制:64MB
输⼊
第⼀⾏输⼊⼀个整数N(0<N<21),代表国家数量;
pants是什么意思
然后接下来的N⾏,每⾏包含⼀个字符串Namei表⽰每个国家的名称,和三个整数Gi、Si、Bi表⽰每个获得的gold medal、silver medal、bronze medal的数量,以空格隔开,如(China 51 20 21),具体见样例输⼊。
输出
输出奖牌榜的依次顺序,只输出国家名称,各占⼀⾏,具体见样例输出。
2021四级成绩出来了没⾸先我们要注意题⽬中对奖牌数的排序和对国家名称的排序是不⼀样的,对奖牌数是从⼤到⼩,对国家名称是按照字典序排列的,为了便于进⾏排序,我们可以将奖牌数前⾯天津爱⼀个负号,这样使两个排序的元素都从⼩到⼤,具体Python代码如下:
import bict
def func():
n = int(input().strip())
alist = []
for i in range(n):
gaby>afterburner
name, gold, silver, bronze = input().strip().split() # 获取每⼀⾏的数据
gold, silver, bronze = -int(gold), -int(silver), -int(bronze) # 将奖牌数变为负数并与排序
英文翻译机构atup = tuple((gold, silver, bronze, name)) # 将需要排序的奖牌数和国家名称加⼊到元组中双赢英文
bict.insort(alist, atup) # 调⽤bict⽅法对每个加⼊的元素进⾏排序
for tmp in alist:
print(tmp[3])
if __name__ == "__main__":
func()
>米饭的英语