比赛 咲 -Saki- 互测赛 评测结果 AAAAAAAAAA
题目名称 天才麻将少女什么编 最终得分 100
用户昵称 Truth.Cirno 运行时间 0.095 s
代码语言 C++ 内存使用 1.98 MiB
提交时间 2012-07-19 10:45:31
显示代码纯文本
#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)
//		{
//			maxnum=c[i];
			maxpos=i;
//		}
	}
	printf("%s\n",sch[maxpos].s);
	return(0);
}