记录编号 71572 评测结果 AAAAAAAAAA
题目名称 韩国明星 最终得分 100
用户昵称 GravatarSatoshi 是否通过 通过
代码语言 C++ 运行时间 0.640 s
提交时间 2013-10-09 20:54:27 内存使用 1.08 MiB
显示代码纯文本
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
int n,i,m;

class au
{
    public:
	string name;
	int point;
}star[100001];
int compare1(au a,au b)
{
	return a.name<b.name;
}
int compare2(au a,au b)
{
	return a.point>b.point;
}
int main()
{
	int s,begin,end,mid;
	string r;
	ifstream in("star.in");
	ofstream out("star.out");
	in>>n;
	for(i=1;i<=n;i++)
	{
		in>>star[i].name;
		star[i].point=0;
	}
	sort(star+1,star+n+1,compare1);
	in>>m;
	for(i=1;i<=m;i++)
	{
		in>>r;
		in>>s;
		begin=1;
	    end=n;
		while(begin<=end)
		{
			mid=(begin+end)/2;
			if(r==star[mid].name)
			{
				star[mid].point+=s;
				break;
			}
			if(r>star[mid].name)begin=mid+1;
			if(r<star[mid].name)end=mid-1;
		}
	}
	sort(star+1,star+n+1,compare2);
	for(i=1;i<=n;i++)
	{
		out<<star[i].name;
		out<<endl;
		out<<star[i].point;
		out<<endl;
	}
	in.close();
	out.close();
	return 0;
}