火影忍者之~鸣人
火影忍者的男主角漩涡鸣人,因为身上封印着邪恶的九尾妖狐,无父无母的他受尽了村人的冷眼与歧视,他下定决心要成为第六代火影,让所有人都认同他的存在,火影是动漫火影忍者中主人公鸣人所在的国家的最强忍者的头衔,史上最强火影为鸣人的父亲--四代火影波风水门,乃是传说级的人物,也是最年轻的火影,要成为火影,不仅需要有千种忍术和全村人的认同
更要有冷静的头脑 德高望重也必不可少 还要有优秀的领导能力,这之中战斗能力是最重要的,然后是领导能力,现在又到了选火影的时候了,可是鸣人此时还很弱,所以给出m个候选人,每个人有战斗力、领导能力两个主要的作为能力判断的依据,还有n个个人信息,第一条信息为名字,按战斗力和领导能力的高低作为标准,判断这些人中最具有担任火影资格的k人。
第一行:m,n,k都为整数
然后是m个候选人的信息,每个人的信息包括n行,第一行是名字,接下来n-1行是其他信息,每条信息为不超过100的字符串,然后是战斗力、领导能力为一行,m、n不超过500.
k不超过50.字符串均不包括空白符
5 3 3
dawn
haligong
dianji
500 500
freelon
haligong
wangluo
500 500
zeropointer
haligong
dianqi
600 400
cha
haligong
computer
800 600
13brother
haligong
computer
400 400
cha
zeropointer
dawn
——————————————————————————————————————
排序题,按题目所述排序
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <stack>
#include <string>
#include <set>
#include <map>
using namespace std; int m,n,k;
struct node
{
int zhan,ling;
char s[505][105];
}p[505]; bool cmp(node a,node b)
{
if(a.zhan!=b.zhan)
return a.zhan>b.zhan;
if(a.ling!=b.ling)
return a.ling>b.ling;
for(int i=0;i<n;i++)
{
if(strcmp(a.s[i],b.s[i])!=0)
return strcmp(a.s[i],b.s[i])<0;
}
} int main()
{ while(cin>>m>>n>>k)
{
memset(p,0,sizeof(p));
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cin>>p[i].s[j];
}
cin>>p[i].zhan>>p[i].ling;
}
sort(p,p+m,cmp);
for(int i=0;i<k;i++)
printf("%s\n",p[i].s[0]);
} return 0;
}