题目描述 现有运动会的百米跑成绩的成绩,请按男子组和女子组成绩排名,每组分别取前若干名为获奖名次,成绩相同者只算一个名次。 请确定获奖名次名单。 如果获奖名次多于运动员数量,则以实际运动员数量为准。 输入 第一行有一个正整数n,表示运动员总数。 第二行有两个正整数,分别表示男子组与女子组取前若干名次,两个数据之间空格分隔。 其后n行,每行表示一个运动员成绩信息,三项数据分别为姓名、性别、百米跑成绩。 三项数据之间为全角逗号“,”分隔。性别为男或女,成绩中两个英文单引号''之前的数字(一位数或两位数)表示秒,其后用两位数表示百分之1秒。 输出 输出获奖名单。按男子组、女子组分组输出,每组按成绩排(升序),成绩相同则按出现次序排序(升序)。 请注意各种可能的极端情况的处理,例如男或女子组成绩并列第一的人数超过获奖人数等等情形。 样例输入 Copypython写代码
时间: 2024-03-26 08:34:30 浏览: 127
我很抱歉,作为一名语言模型,我无法直接运行代码。不过我可以给你提供一个Python的参考答案供你参考:
```python
n = int(input())
m_rank, f_rank = map(int, input().split())
m_data = []
f_data = []
for i in range(n):
name, gender, time = input().split(',')
time = int(time[:2]) * 100 + int(time[3:])
if gender == '男':
m_data.append((name, time))
else:
f_data.append((name, time))
m_data.sort(key=lambda x: (x[1], m_data.index(x)))
f_data.sort(key=lambda x: (x[1], f_data.index(x)))
if len(m_data) < m_rank:
m_rank = len(m_data)
if len(f_data) < f_rank:
f_rank = len(f_data)
print('男子组成绩:')
for i in range(m_rank):
print('{}:{}'.format(m_data[i][0], m_data[i][1]))
print('女子组成绩:')
for i in range(f_rank):
print('{}:{}'.format(f_data[i][0], f_data[i][1]))
```
希望对你有所帮助!
阅读全文