【华为机试】2023年真题B卷(python)-冠亚军排名-奖牌榜排名
2023-12-31 13:33:26
一、题目
题目描述:
2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下.?
1.首先gold medal数量多的排在前面?
2.其次silver medal数量多的排在前面?
3.然后bronze medal数量多的排在前面?
4.若以上三个条件仍无法区分名次,则以国家名称的字典顺序排定 我们假设国家名称不超过二十个字符,各类奖牌数不超过100,且大于0
二、输入输出
输入描述:
第一行输入一个整数N(0<N<21),代表国家数量然后接下来的N行,每行包含1个字符串Name表示各个国家的名称和三个整数Gi.Si,Bi 表示每个获得的aold medal.silver medal.bronze medal的数量,以空格隔开,如(China 51 20 21).?
具体见样例输入。
5 China 32 28 34?
England 12 34 22?
France 23 33 2?
Japan 12 34 25?
Rusia 23 43 0
输出描述:
输出奖牌榜的依次顺序,只输出国家名称,各占一行,具体见样例输出 China Rusia France Japan England
三、示例
示例1:?
输入:
5?
China 32 28 34?
England 12 34 22?
France 23 33 2?
Japan 12 34 25
Rusia 23 43 0?
输出:
ChinaRusia
France
Japan
England?
说明:
无
四、解题思路
自定义排序
五、参考代码?
# -*- coding: utf-8 -*-
'''
@File : 2023-B-冠亚军排名-奖牌榜排名.py
@Time : 2023/12/29 18:50:01
@Author : mgc
@Version : 1.0
@Desc : None
'''
import bisect
def print_countries_by_medals(num_countries):
countries = []
for _ in range(num_countries):
name, gold, silver, bronze = input().strip().split()
gold, silver, bronze = -int(gold), -int(silver), -int(bronze)
country_tuple = (gold, silver, bronze, name) # 创建国家元组
bisect.insort(countries, country_tuple) # 将国家元组按奖牌数插入到合适的位置
for country in countries:
print(country[3]) # 输出国家名称
num_countries = int(input().strip()) # 国家数量
print_countries_by_medals(num_countries)
文章来源:https://blog.csdn.net/u014481728/article/details/135297010
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!