HRBUST1313 火影忍者之~静音

HRBUST1313 火影忍者之~静音火影忍者之 静音传说中的火之国一年一度的公务员选拔又开始了 木叶忍者村此次也要从中选拔出 5 人来 作为即将上任的新火影纲手的小弟 可是报考公务员的人数实在是太 多啦 所以纲手的贴身随从 静音小姐 决定对这写人进行分

大家好,欢迎来到IT知识分享网。

火影忍者之~静音

 

传说中的火之国一年一度的公务员选拔又开始了!木叶忍者村此次也要从中选拔出5人来,作为即将上任的新火影纲手的小弟~,可是报考公务员的人数实在是太~~多啦!所以纲手的贴身随从—静音小姐,决定对这写人进行分m批的选拔,每次笔试n人,第一次选出5人,之后每次从这n人与之前参加笔试但未选中的人一起再选出分数最高的5人,如果分数相同则按名字的字典序选择,这样下来可以刷掉一大批人,但纲手只需要5人,这时候就轮到静音小姐的跟班小弟卡卡西,来将这些人再进行二次筛选,卡卡西决定对这些人进行忍术测试,然后选出前5名,作为最后选出的人选,如果忍术分数相同,那么名字字典序靠前的被选中。

HRBUST1313 火影忍者之~静音

Input

首先是整数
m
n,表示要进行
m波笔试,每波
n人,然后是
m组,每组
n行,每行包括一个字符串与两个整数,表示一个人的名字和他的笔试分数以及他的忍术分数。输入到文件结束
,m<=100,n<=100名字不长于
20,分数不超过
100.

Output

按顺序输出最后选出的
5人的名字,每个名字占一行。(第一次选择的时候不需要考虑忍术成绩,第二次选择也不需要考虑笔试成绩)

Sample Input

1 6

abc 10 20

bcd 20 30

cde 30 40

def 40 50

efg 50 60

fgh 60 70

Sample Output

fgh

efg

def

cde

bcd

——————————————————————————————————————————————————————————————

优先队列维护,把每轮参加的人压进队列,每轮弹出前5个,存进数组在排序。

#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <queue> #include <stack> #include <string> #include <set> #include <map> using namespace std; struct node { char name[25]; int bi,zhan; bool friend operator<(node a,node b) { if(a.bi!=b.bi) return a.bi<b.bi; return strcmp(a.name,b.name)>0; } } p,fl[10005]; bool cmp(node a,node b) { if(a.zhan!=b.zhan) return a.zhan>b.zhan; return strcmp(a.name,b.name)<0; } priority_queue<node>q; int main() { int m,n; while(~scanf("%d%d",&m,&n)) { while(!q.empty()) q.pop(); int cnt=0; for(int i=0; i<m; i++) { for(int j=0; j<n; j++) { scanf("%s%d%d",p.name,&p.bi,&p.zhan); q.push(p); } int x=0; while(x<5) { x++; fl[cnt++]=q.top(); q.pop(); } } sort(fl,fl+cnt,cmp); for(int i=0; i<5; i++) { printf("%s\n",fl[i].name); } } return 0; }

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/141805.html

(0)
上一篇 2025-05-14 19:15
下一篇 2025-05-14 19:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信