火影忍者之~鸣人 | ||||||
| ||||||
Description | ||||||
火影忍者的男主角漩涡鸣人,因为身上封印着邪恶的九尾妖狐,无父无母的他受尽了村人的冷眼与歧视,他下定决心要成为第六代火影,让所有人都认同他的存在,火影是动漫火影忍者中主人公鸣人所在的国家的最强忍者的头衔,史上最强火影为鸣人的父亲--四代火影波风水门,乃是传说级的人物,也是最年轻的火影,要成为火影,不仅需要有千种忍术和全村人的认同 更要有冷静的头脑 德高望重也必不可少 还要有优秀的领导能力,这之中战斗能力是最重要的,然后是领导能力,现在又到了选火影的时候了,可是鸣人此时还很弱,所以给出m个候选人,每个人有战斗力、领导能力两个主要的作为能力判断的依据,还有n个个人信息,第一条信息为名字,按战斗力和领导能力的高低作为标准,判断这些人中最具有担任火影资格的k人。
| ||||||
Input | ||||||
第一行:m,n,k都为整数 然后是m个候选人的信息,每个人的信息包括n行,第一行是名字,接下来n-1行是其他信息,每条信息为不超过100的字符串,然后是战斗力、领导能力为一行,m、n不超过500. k不超过50.字符串均不包括空白符 | ||||||
Output | ||||||
输出前k个人的名字。战斗力和领导能力都相同则按名字的字典序排列。(如果名字也相同则依次按后面的个人信息的字典序排列) | ||||||
Sample Input | ||||||
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 | ||||||
Sample Output | ||||||
cha zeropointer dawn
|
#include<bits/stdc++.h>
using namespace std;
struct node
{
char name[105];
char mes[505][105];
int x, y;
} a[505];
bool cmp(node a, node b)
{
int i = 0;
if(a.x == b.x)
{
if(a.y == b.y)
{
if(strcmp(a.name, b.name) == 0)
{
while(strcmp(a.mes[i], b.mes[i]) == 0)
i++;
return strcmp(a.mes[i], b.mes[i]) < 0;
}
return strcmp(a.name, b.name) < 0;
}
return a.y > b.y;
}
return a.x > b.x;
}
int main()
{
int n, m, k;
while(cin >> n >> m >> k)
{
for(int i = 0; i < n; i++)
{
cin >> a[i].name;
for(int j = 0; j < m - 1; j++)
cin >> a[i].mes[j];
cin >> a[i].x >> a[i].y;
}
sort(a, a + n, cmp);
for(int i = 0; i < k; i++)
cout << a[i].name << endl;
}
return 0;
}