题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5131
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<list>
#define mem(x,y)memset(x,y,sizeof(x))
#define max(a,b)(a)>(b)?(a):(b)
#define min(a,b)(a)<(b)?(a):(b)
#define INF 0x1f1f1f1f
#define eps 1e-10
#define M 1000007
using namespace std;
typedef long long int LL;
typedef __int64 ll;
const int maxn=1005;
struct qxw
{
char ch[maxn];
int kill;
};
int n,m;
qxw a[maxn];
char b[maxn][maxn];
int cmp(qxw x,qxw y)
{
if(x.kill==y.kill)
{
return strcmp(x.ch,y.ch)<0;
}
return x.kill>y.kill;
}
int main()
{
int i,j;
while(~scanf("%d",&n))
{
if(n==0)break;
for(i=0;i<n;i++)
{
scanf("%s %d",a[i].ch,&a[i].kill);
}
sort(a,a+n,cmp);
scanf("%d",&m);
for(i=0;i<m;i++)
{
scanf("%s",b[i]);
}
int s=0,ss=0;
int id;
for(i=0;i<n;i++)
{
printf("%s %d\n",a[i].ch,a[i].kill);
}
for(i=0;i<m;i++)
{
s=0,ss=0;
for(j=0;j<n;j++)
{
if(strcmp(b[i],a[j].ch)==0)
{
id=j;
break;
}
}
for(j=0;j<n;j++)
{
if(j<id)
{
s++;
if(a[j].kill==a[id].kill)
{
ss++;
s--;
}
}
}
if(ss==0)
{
printf("%d\n",s+1);
}
else
{
printf("%d %d\n",s+1,ss+1);
}
}
}
return 0;
}