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