Result: Accepted
Time: 2ms
Memory: 1388kB
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
typedef struct
{
char name[200];
double score;
}POINT;
int comp(const void *p, const void *q)
{
return ((POINT *)q)->score > ((POINT *)p)->score?1:-1;
}
int main()
{
int n, i, m;
POINT a[2000];
char s[101];
scanf("%d", &n);
for(i=0;i<n;i++)
{
scanf("%s%lf", a[i].name, &a[i].score);
a[i].name[strlen(a[i].name)-1]='\0';
}
qsort(a, n, sizeof(POINT), comp);
scanf("%d", &m);
while(m--)
{
scanf("%s", s);
for(i=0;i<n;i++)
{
if(strcmp(a[i].name, s)==0)
break;
}
int x = a[i].score;
for(i=0;i<n;i++)
{
if(a[i].score==x)
break;
}
if(a[i].score==x)
printf("%d\n", i);
}
}