Result: Accepted
Time: 2ms
Memory: 1204kB
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
using namespace std;
struct student{
char name[105];
int rank;
int score;
};
int cmp(student a,student b){
return a.score>b.score;
}
int main(){
struct student a[1005];char c;char cha[1001][105]={'\0'};
int n,i,j,m,t=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s",a[i].name);
scanf(" %d",&a[i].score);
a[i].name[strlen(a[i].name)-1]='\0';
}
sort(a,a+n,cmp);
for(i=0;i<n;i++)
a[i].rank=i+1;
for(i=0;i<n-1;i++){
if(a[i].score==a[i+1].score)
a[i+1].rank=a[i].rank;
}
scanf("%d",&m);
for(i=0;i<m;i++){
scanf("%s",cha[i]);
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(strcmp(a[j].name,cha[i])==0){
printf("%d\n",a[j].rank-1);break;
}
}
}
return 0;
}