Result: Accepted
Time: 2ms
Memory: 2548kB
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct my
{
char name[110];
int num;
int rank;
}t[10000];
bool cmp(const my a,const my b)
{
return a.num>b.num;
}
int main()
{
int n;
char z[110];
int a;
scanf("%d",&n);
int i;
for(i=0;i<n;i++)
{
scanf("%s%d",&z,&a);
t[i].num=a;
int len=strlen(z);
z[len-1]='\0';
strcpy(t[i].name,z);
// printf("%s\n",t[i].name);
}
sort(t,t+n,cmp);
for(i=0;i<n;i++)
{
t[i].rank=i+1;
// printf("%s %d\n",t[i].name,t[i].rank);
}
for(i=0;i<n-1;i++)
{
if(t[i].num==t[i+1].num)
t[i+1].rank=t[i].rank;
}
// for(i=0;i<n;i++)printf("%s %d\n",t[i].name,t[i].rank);
int m;
int c[100000];
scanf("%d",&m);
int j;
for(j=0;j<m;j++)
{
char name1[110];
scanf("%s",name1);
for(i=0;i<n;i++)
{
if(strcmp(name1,t[i].name)==0)
{
c[j]=(t[i].rank-1);
break;
}
}
}
for(j=0;j<m;j++)
printf("%d\n",c[j]);
}