记录编号 33363 评测结果 AAAAAAAAAA
题目名称 韩国明星 最终得分 100
用户昵称 Gravatarkaaala 是否通过 通过
代码语言 C++ 运行时间 1.353 s
提交时间 2011-11-10 13:56:42 内存使用 1.41 MiB
显示代码纯文本
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string>
#include<cstring>

using namespace std;

struct type
{
	long long sum;
	string st;
}a[100001];

int n,k,wz;
string s;

int cmp(const void *a,const void *b )
{
	if(((type *)a)->sum<((type *)b)->sum)
		return 1;
	return -1;
}

int cmp1(const void *a,const void *b)
{
	if(((type *)a)->st>((type *)b)->st)
		return 1;
	return -1;
}

void find(int x,int y)
{
	int mid;
	mid=(x+y)/2;
	if(x==y)
	{
		wz=x;
		return;
	}
	if(s<=a[mid].st)
		find(x,mid);
	else
		find(mid+1,y);
}

int main()
{
	int i,tmp;
	ifstream fin("star.in");
	ofstream fout("star.out");
	fin>>n;
	for(i=1;i<=n;i++)
		fin>>a[i].st;
	qsort(a+1,n,sizeof(a[0]),cmp1);
	fin>>k;
	for(i=1;i<=k;i++)
	{
		fin>>s>>tmp;
		find(1,n);
		a[wz].sum+=tmp;
	}
	qsort(a+1,n,sizeof(a[0]),cmp);
	for(i=1;i<=n;i++)
		fout<<a[i].st<<endl<<a[i].sum<<endl;
	fin.close();
	fout.close();
	return 0;
}