炼心 reheart

炼心 reheart

题目:

题目背景:

Cafeiin神情认真,专心的听着老师讲话。

“既然你已拜入算法门下,我便为你讲讲这算法的修炼之道,

算法之道,分几重境界,初入编程,便是普及,普及之上更有提高。提高之上,一劫一境界。提高

巅峰强者引天雷入体渡劫,便能成就省选,省选再渡劫,便是集训队,集训队再渡劫,便证得IOI大道。

天榜之下还有地榜,从校赛市赛省赛一路渡劫,证得ICPC world final总决赛。

不过,天榜学历皆不过高中,个个都是万里挑一的奇才。

为师便考考你,这天地二榜,谁为首。”

题目描述:

算法之路中有n名同学第i个同学有ai,表示该名同学的程序设计能力,

bi表示该名同学的学历(1表示幼儿园, 2-7表示小学,8-13表示中学,大于13表示更高学历),它的名字是si为字符串

天榜学历不超过13,地榜学历不小于14,满足学历要求的同学会分别在两个榜单中排名.

你需要分别输出,天榜地榜当中,程序设计能力最强的同学中,学历最小的名字,存在多个则输出

字典序最小的那一个,如果榜上无人,输出-1

输入格式:

第一行一个整数n

接下来n行,每行有三个数据,分别是名字字符串si,程序设计能力ai,学历bi

输出格式:

两行,第一行为天榜强者的名字,第二行为地榜强者的名字

样例:

样例输入:

5
cafeiin 18 11 
George_Plover 20 12 
Karshilov 19 12 
wzk 23 14 
Lenska 18 12

样例输出:

George_Plover 
wzk

数据范围与提示:

对于10% 的数据,天榜强者为George_Plover

对于10%的数据,地榜强者为George_Plove

对于30%的数据,1<=n<=100,ai<=10,bi<=10

对于100%的数据,1<=n<=105,1<=ai<=100,1<=bi<=100,1<=字符串si长度len(si)<=15

保证名字互不相同

解析:

先不得说一下这题目背景,看来我们亲切的出题人也是修炼的同道中人。(有幸遇到道友

抛开题目背景,这道题就是先根据bi分类,为天榜与地榜,再进行排序。

这里我用sort来排序,主要是要写好中间的bool型函数cmp就行了

注意要比较的有三项(ai、bi、si),以及榜中如果没有人就要输出-1

AC代码

//炼心 
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<iostream>
using namespace std;
const int MAXN = 100001;

struct kid
{
	int a,b;
	string name;
};

int n,qnq,quq;
kid tian[MAXN],di[MAXN];

inline bool cmp(kid x,kid y)
{
	int l1,l2,i;
	if(x.a==y.a)
	{
		if(x.b==y.b)
			return x.name < y.name;
		return x.b < y.b;
	}
	return x.a > y.a;
}

int main()
{
//	freopen("reheart.in","r",stdin);
//	freopen("reheart.out","w",stdout);
	scanf("%d",&n);
	int i,a,b;
	string m;
	for(i=1;i<=n;++i)
	{
		cin >> m;
		scanf("%d%d",&a,&b);
		if(b<=13)
		{
			tian[++qnq].name=m,tian[qnq].a=a,tian[qnq].b=b;
		}
		else
		{
			di[++quq].name=m,di[quq].a=a,di[quq].b=b ; 
		}
	}
	if(!qnq) printf("-1\n");
	else
	{
		sort(tian+1,tian+1+qnq,cmp);
		cout << tian[1].name << endl;
	}
	if(!quq) printf("-1\n");
	else
	{
		sort(di+1,di+1+quq,cmp);
		cout << di[1].name << endl;
	}
	return 0;
 }

完结撒花✿✿ヽ(°▽°)ノ✿

posted @   于是开始主动营业  阅读(40)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示