记录编号 |
33363 |
评测结果 |
AAAAAAAAAA |
题目名称 |
韩国明星 |
最终得分 |
100 |
用户昵称 |
kaaala |
是否通过 |
通过 |
代码语言 |
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;
}