Start: Dec, 27, 2015 17:15:00
2015年秋学期《程序设计基础》第三次上机考试
End: Dec, 27, 2015 20:45:00
Time elapsed:
Time remaining:

Problem_ID: G
Result: Accepted
Time: 2ms
Memory: 2548kB
Author: 2015210405034
In contest: 1043

#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]);

}