排序题
看题目戳这
坑点还得看题目
超时的话是没划100的范围
#include<bits/stdc++.h>
using namespace std;
struct node{
char name[10];
int age,pro;
}p[100005];
bool cmp(node x,node y){
if(x.pro!=y.pro){
return x.pro>y.pro;
}else {
if(x.age!=y.age){
return x.age<y.age;//按年龄排。。别漏了
}else {
return strcmp(x.name,y.name)<0;
}
}
}
int main(){
int n,t,amin,amax,k,cnt;
scanf("%d%d",&n,&t);
getchar();
for(int i=0;i<n;i++){
scanf("%s%d%d",p[i].name,&p[i].age,&p[i].pro);
}
sort(p,p+n,cmp);
for(int i=1;i<=t;i++){
scanf("%d%d%d",&k,&amin,&amax);
cnt=0;
printf("Case #%d:\n",i);
for(int j=0;j<n;j++){
if(p[j].age<=amax&&p[j].age>=amin){
cnt++;
printf("%s %d %d\n",p[j].name,p[j].age,p[j].pro);
}
if(cnt==100||cnt==k){
break;
}
}
if(cnt==0){
printf("None\n");
continue;
}
}
return 0;
}