Result: Accepted
Time: 5ms
Memory: 1200kB
#include<stdio.h>
#include<string.h>
struct nick {
char name1[110];
int score;
};
void mysort(struct nick a[],int n)
{
int i,j;
struct nick t;
for(i=1; i<n; i++)
{
for(j=0; j<n-i; j++)
if(a[j+1].score>a[j].score)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
int main() {
struct nick nickArray[1010];
int n, m, len;
char name2[1010][110];
int i, j, k, t;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%s %d", nickArray[i].name1, &nickArray[i].score);
mysort(nickArray,n);
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%s", name2[i]);
for(i=0;i<m;i++) {
for(k=0;k<n;k++) {
len=strlen(nickArray[k].name1);
for(j=0;j<len-1;j++) {
if(name2[i][j]==nickArray[k].name1[j]&&j==len-2) {
for(t=k;t>=0;t--){
if(t==0) {
printf("0\n");
break;
}
else if(nickArray[t].score>nickArray[k].score) {
printf("%d\n",t+1);
break;
}
}
}
else if(name2[i][j]!=nickArray[k].name1[j])
break;
}
}
}
return 0;
}