PAT A1055 The World's Richest"/>
PAT A1055 The World's Richest
题目链接
#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(aworth!=bworth) return aworth>bworth;//按照财富值从大到小排列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]worth);}//输入姓名,年龄,财富值等信息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]worth);count++;//输出记录数加1}}if(count==0)printf("None\n");//如果输出记录数为零,则输出None}return 0;
}
更多推荐
PAT A1055 The World's Richest
发布评论