hrbust 1310火影忍者之~鸣人 【结构体排序】

火影忍者之~鸣人
Time Limit: 2000 MSMemory Limit: 65536 K
Total Submit: 471(137 users)Total Accepted: 178(122 users)Rating: Special Judge: No
Description

    火影忍者的男主角漩涡鸣人,因为身上封印着邪恶的九尾妖狐,无父无母的他受尽了村人的冷眼与歧视,他下定决心要成为第六代火影,让所有人都认同他的存在,火影是动漫火影忍者中主人公鸣人所在的国家的最强忍者的头衔,史上最强火影为鸣人的父亲--四代火影波风水门,乃是传说级的人物,也是最年轻的火影,要成为火影,不仅需要有千种忍术和全村人的认同 更要有冷静的头脑 德高望重也必不可少 还要有优秀的领导能力,这之中战斗能力是最重要的,然后是领导能力,现在又到了选火影的时候了,可是鸣人此时还很弱,所以给出m个候选人,每个人有战斗力、领导能力两个主要的作为能力判断的依据,还有n个个人信息,第一条信息为名字,按战斗力和领导能力的高低作为标准,判断这些人中最具有担任火影资格的k人。





Input

第一行:m,n,k都为整数

然后是m个候选人的信息,每个人的信息包括n行,第一行是名字,接下来n-1行是其他信息,每条信息为不超过100的字符串,然后是战斗力、领导能力为一行,mn不超过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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值