PAT A1055. The world's Richest

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
struct Billionaire
{
    char name[10];
    int age;
    int wealth;
}billionaire[100010];

bool cmp(Billionaire a,Billionaire b)
{
    if(a.wealth!=b.wealth) return a.wealth>b.wealth;
    else if(a.age!=b.age) return a.age<b.age;
    else return strcmp(a.name,b.name)<0;
}

int main()
{

    int N,K;
    scanf("%d %d",&N,&K);
    for(int i = 0;i<N;i++)
    {
        scanf("%s %d %d",billionaire[i].name,&billionaire[i].age,&billionaire[i].wealth);
    }

    sort(billionaire,billionaire+N,cmp);
    int num,start_range,end_range;
    for(int i = 0;i<K;i++)
    {
        scanf("%d %d %d",&num,&start_range,&end_range);
        printf("Case #%d:\n",i+1);
        int tmp_num = 0;
        for(int j = 0;j<N;j++)
        {
            if(billionaire[j].age>=start_range&&billionaire[j].age<=end_range&&tmp_num<num)
             {
             printf("%s %d %d\n",billionaire[j].name,billionaire[j].age,billionaire[j].wealth);
             tmp_num++;
             }
        }
        if(tmp_num==0)
            printf("None\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_37637619/article/details/89950332