PAT1 1036 Boys vs Girls

题目链接
我的github

题目大意

现在给一群学的姓名,性别, id, 分数,要求男生中分数最低的和女生中分数最高的,以及男女生之间的分数差

输入

每组包含一个测试用例,每个用例第一行是一个正整数 N N N。之后有 N N N行,每行表示一个学生的信息namegenderIDgrade。名字和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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值