显示代码纯文本
#include <cstdio>
#include <cstring>
#include <memory.h>
using namespace std;
struct strings
{
char s[202];
};
int k,schnum,stunum,sttosc[200],sturight[200],c[40];
strings sch[40],stu[200];
int main(void)
{
freopen("sakinani.in","r",stdin);
freopen("sakinani.out","w",stdout);
int i,j,maxnum=0,maxpos;
strings str;
bool found;
scanf("%d\n",&stunum);
for (i=0;i<stunum;i++)
{
memset(str.s,0,sizeof(str.s));
scanf("%s %s\n",&stu[i].s,&str.s);
sturight[i]=1;
found=false;
for (j=0;j<schnum;j++)
if (strcmp(sch[j].s,str.s)==0)
{
sttosc[i]=j;
found=true;
break;
}
if (!found)
{
sch[schnum]=str;
sttosc[i]=schnum++;
}
}
scanf("%d\n",&k);
for (i=0;i<k;i++)
{
scanf("%s\n",&str.s);
for (j=0;j<=stunum;j++)
if (strcmp(stu[j].s,str.s)==0)
{
sturight[j]=2;
break;
}
}
scanf("\n");
memset(str.s,0,sizeof(str.s));
while (scanf("%s\n",&str.s)==1)
{
for (i=0;i<stunum;i++)
if (strcmp(stu[i].s,str.s)==0)
{
c[sttosc[i]]+=sturight[i];
break;
}
memset(str.s,0,sizeof(str.s));
}
for (i=0;i<schnum;i++)
{
if (maxnum<c[i])
{
maxnum=c[i];
maxpos=i;
}
else if (maxnum==c[i]&&strcmp(sch[i].s,sch[maxpos].s)<0)
maxpos=i;
}
printf("%s\n",sch[maxpos].s);
return(0);
}