#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct person{
char name[10];
int age;
int networth;
}Rank[1000000];
bool cmp(person a,person b){
if(a.networth!=b.networth) return a.networth>b.networth;//按照财富值从大到小排列
else if(a.age!=b.age) return a.age<b.age;//如果财富值相等,按照年龄从小到大排列
else return strcmp(a.name,b.name)<0;//财富和年龄都相等,按姓名字典序排列
}
int main(){
int n,k,m,casenum,amin,amax,count;
scanf("%d%d",&n,&k);//输入人数和查询数
for(int i=0;i<n;i++){
scanf("%s %d %d",Rank[i].name,&Rank[i].age,&Rank[i].networth);
}//输入姓名,年龄,财富值等信息
sort(Rank,Rank+n,cmp);//排序
for(casenum=1;casenum<=k;casenum++){//casenum为查询序号
count=0;//本查询输出数清零
scanf("%d%d%d",&m,&amin,&amax);//输入最大输出数,最小年龄和最大年龄界限
printf("Case #%d:\n",casenum);//输出case序号
for(int j=0;j<n&&count<m;j++){//按年龄区间筛选
if(Rank[j].age>=amin&&Rank[j].age<=amax){
printf("%s %d %d\n",Rank[j].name,Rank[j].age,Rank[j].networth);
count++;//输出记录数加1
}
}
if(count==0)printf("None\n");//如果输出记录数为零,则输出None
}
return 0;
}
PAT A1055 The World's Richest
猜你喜欢
转载自blog.csdn.net/weixin_44546393/article/details/105318708
今日推荐
周排行