Result: Accepted
Time: 3ms
Memory: 1092kB
#include<stdio.h>
#include<string.h>
#include<math.h>
struct f
{
char a[100];
int b;
};
int main()
{
int t,i,j,l1,l2,n,k,d,l;
char m,b[100];
struct f a[1000];
scanf("%d",&t);
for(i=0;i<t;i++)
scanf("%s%c%d",a[i].a,&m,&a[i].b);
scanf("%d",&n);
while(n--)
{
d=0;
scanf("%s",b);
l1=strlen(b);
for(i=0;i<t;i++)
{
l=l1;
l2=strlen(a[i].a)-1;
if(l2<l1)
l=l2;
if(a[i].a[0]==b[0])
{
for(j=0;j<l;j++)
{
if(a[i].a[j]!=b[j])
break;
}
}
if(j==l&&a[i].a[j-1]==b[j-1]&&l1==l2)
{
k=a[i].b;
break;
}
}
for(i=0;i<t;i++)
{
if(a[i].b>k)
d++;
}
printf("%d\n",d);
}
}