题目大意
现在给一群学的姓名,性别, id, 分数,要求男生中分数最低的和女生中分数最高的,以及男女生之间的分数差
输入
每组包含一个测试用例,每个用例第一行是一个正整数
N
N
N。之后有
N
N
N行,每行表示一个学生的信息name
,gender
,ID
,grade
。名字和id是长度不超过10的字符串,性别是F
代表女生,M
代表男生,分数是范围在
[
0
,
100
]
[0, 100]
[0,100]的整数,保证分数都不同
输出
对每个用例输出有三行。第一行输出女生中分数最高的人的姓名和id,第二行输出男生中分数最低的人的姓名和id,第三行输出最高和最低的差。如果学生中没有男生或女生,则在对应的输出的那行输出Absent
,并在最后一行输出NA
解析
分别保存男女生的成绩然后排序即可
# -*- coding: utf-8 -*-
# @Time : 2019/6/1 9:24
# @Author : ValarMorghulis
# @File : 1036.py
def solve():
n = eval(input())
male = list()
female = list()
for i in range(n):
name, gender, id, grade = input().split()
grade = int(grade)
if gender == 'M':
male.append([name, id, grade])
elif gender == 'F':
female.append([name, id, grade])
male = sorted(male, key=lambda x: x[2])
female = sorted(female, key=lambda x: x[2], reverse=True)
if len(male) == 0:
print("%s %s" % (female[0][0], female[0][1]))
print("Absent")
print("NA")
elif len(female) == 0:
print("Absent")
print("%s %s" % (male[0][0], male[0][1]))
print("NA")
else:
print("%s %s" % (female[0][0], female[0][1]))
print("%s %s" % (male[0][0], male[0][1]))
print(female[0][2] - male[0][2])
if __name__ == "__main__":
solve()