栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

PAT 甲级 1062 Talent and Virtue

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PAT 甲级 1062 Talent and Virtue

1062 Talent and Virtue

题目大意:给出一组人数,按照要求分类再排序输出。圣人是virtue和talent都超过h的人,君子是virtue超过h并且talent位于[l,h)区间内的人,笨蛋是两个都位于[l,h)区间内并且virtue>=talent的人,剩下的达到最低标准l的都是小人。PS:python日常超时,C++这里完美AC

class Person:
    def __init__(self,id,virtue,talent):
        self.id=id
        self.virtue=virtue
        self.talent=talent

n,l,h=map(int,input().split())
sages=[]    #圣人
noblemen=[] #君子
foolmen=[]  #笨蛋
smallmen=[] #小人
cnt=0  #统计达标的总人数
for i in range(n):
    id,virtue,talent=map(int,input().split())
    if virtue=h and talent>=h: #圣人
            sages.append(Person(id,virtue,talent))
        elif virtue>=h and talent in range(l,h):    #君子
            noblemen.append(Person(id,virtue,talent))
        elif virtue in range(l,h) and talent in range(l,h) and virtue>=talent:  #笨蛋
            foolmen.append(Person(id,virtue,talent))
        else:
            smallmen.append(Person(id,virtue,talent))
        cnt+=1
sages.sort(key=lambda p:(-(p.virtue+p.talent),-p.virtue,p.id))
noblemen.sort(key=lambda p:(-(p.virtue+p.talent),-p.virtue,p.id))
foolmen.sort(key=lambda p:(-(p.virtue+p.talent),-p.virtue,p.id))
smallmen.sort(key=lambda p:(-(p.virtue+p.talent),-p.virtue,p.id))
print(cnt)
for i in sages:
    print(i.id,i.virtue,i.talent)
for i in noblemen:
    print(i.id,i.virtue,i.talent)
for i in foolmen:
    print(i.id,i.virtue,i.talent)
for i in smallmen:
    print(i.id,i.virtue,i.talent)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/580902.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号