1055. The World’s Richest (25)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct record
{
char name[10];
int age;
int worth;
}s[100001];
int comp(const void*a,const void*b)
{
struct record *p=(struct record*)a,*q=(struct record*)b;
if(p->worth!=q->worth)
return q->worth-p->worth;
else if(p->age!=q->age)
return p->age-q->age;
else
return strcmp(p->name,q->name);
}
int main()
{
int n,k,i,j;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%s %d %d",s[i].name,&s[i].age,&s[i].worth);
}
qsort(s,n,sizeof(struct record),comp);
for(j=0;j<k;j++)
{
int max,down,up,c=0;
scanf("%d %d %d",&max,&down,&up);
printf("Case #%d:\n",j+1);
for(i=0;i<n;i++)
{
if(s[i].age>=down&&s[i].age<=up)
{
printf("%s %d %d\n",s[i].name,s[i].age,s[i].worth);
c++;
}
if(c==max)break;
}
if(c==0)
printf("None\n");
}
return 0;
}