比赛 20111110 评测结果 AAAAAAAAAA
题目名称 韩国明星 最终得分 100
用户昵称 Czb。 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-10 10:22:55
显示代码纯文本
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>

struct Node
{
	int key;
	Node *a[130];
	Node()
	{
		key=0;
		for(int i=0;i<=129;i++)
			a[i]=NULL;
	}
};

struct aaa
{
	char c[100];
	int key;
}a[100001];

int n,m,l,tmp;

char c[100];

int cmp(const void *a,const void *b)
{
	return (*(aaa *)b).key-(*(aaa *)a).key;
}

int main()
{
	freopen("star.in","r",stdin);
	freopen("star.out","w",stdout);
	int i,j;
	Node *head=new Node;
	scanf("%d\n",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%[^\n]\n",&a[i].c);
		l=strlen(a[i].c);
		Node *p=new Node;
		p=head;
		for(j=0;j<l;j++)
		{
			if(p->a[a[i].c[j]]==NULL)
			{
				Node *q=new Node;
				p->a[a[i].c[j]]=q;
				q=NULL;
				delete q;
			}
			p=p->a[a[i].c[j]];
		}
		p->key=i;
		p=NULL;
		delete p;
	}
	scanf("%d\n",&m);
	for(i=1;i<=m;i++)
	{
		scanf("%[^\n]\n%d\n",&c,&tmp);
		l=strlen(c);
		Node *p=new Node;
		p=head;
		for(j=0;j<l;j++)
			p=p->a[c[j]];
		a[p->key].key+=tmp;
		p=NULL;
		delete p;
	}
	qsort(a+1,n,sizeof(aaa),cmp);
	for(i=1;i<=n;i++)
		printf("%s\n%d\n",a[i].c,a[i].key);
	delete head;
	fclose(stdin);
	fclose(stdout);
	return 0;
}