比赛 |
20140421 |
评测结果 |
AATTTTATTT |
题目名称 |
注水猪肉 |
最终得分 |
30 |
用户昵称 |
Dijkstra |
运行时间 |
7.004 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2014-04-21 10:55:11 |
显示代码纯文本
#include<fstream>
#include<string>
#include<algorithm>
using namespace std;
ifstream fin("boss.in");
ofstream fout("boss.out");
int N;
struct boss
{
string name;
string n;
}b[1000];
string PLUS(string a,string b)
{
int ans[2000]={0},aa[2000]={0},bb[2000]={0},la=a.length(),lb=b.length();
int i;
for(i=0;i<la;i++) aa[i]=int(a[la-i-1]-'0');
for(i=0;i<lb;i++) bb[i]=int(b[lb-i-1]-'0');
int s=0;
for(i=0;i<=max(la,lb);i++)
{
ans[i]=(aa[i]+bb[i])%10+s;
s=(aa[i]+bb[i])/10;
}
string ST="";
for(i=max(la,lb)-(ans[max(la,lb)]==0);i>=0;i--) ST+=char(ans[i]+'0');
return ST;
}
bool cmp(boss a,boss b)
{
if(a.n.length()>b.n.length()) return 1;
if(a.n.length()==b.n.length()&&a.n>b.n) return 1;
if(a.n==b.n&&a.name<b.name) return 1;
return 0;
}
int main()
{
fin>>N;
int i;
for(i=0;i<N;i++) fin>>b[i].name>>b[i].n;
sort(b,b+N,cmp);
string sum="0";
for(i=0;i<N;i++)
{
fout<<b[i].name<<endl;
sum=PLUS(sum,b[i].n);
}
for(i=1;i<=490-sum.length();i++) fout<<"0";
for(i=max(0,int(sum.length())-490);i<sum.length();i++) fout<<sum[i];
fout<<endl;
return 0;
}