记录编号 |
98184 |
评测结果 |
AAAAAAAAAA |
题目名称 |
注水猪肉 |
最终得分 |
100 |
用户昵称 |
超级傲娇的AC酱 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.115 s |
提交时间 |
2014-04-21 20:54:08 |
内存使用 |
0.32 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<algorithm>
using namespace std;
struct Pig
{
string name,sum;
};
vector<Pig>A;
bool cmp(Pig a,Pig b)
{
if(a.sum.length()>b.sum.length())return true;
if(a.sum.length()<b.sum.length())return false;
for(int i=0;i<a.sum.length();i++){
if(a.sum[i]>b.sum[i])
return true;
if(a.sum[i]<b.sum[i])
return false;
}
if(a.name<=b.name)
return true;
return false;
}
inline string ADD(string,string);
int main()
{
int i,n;
string s1,s2,Ans="0";
freopen("boss.in","r",stdin);
freopen("boss.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n;
for(i=0;i<n;i++)
{
cin>>s1>>s2;
A.push_back((Pig){s1,s2});
Ans=ADD(s2,Ans);
}
sort(A.begin(),A.end(),cmp);
for(i=0;i<n;i++)
cout<<A[i].name<<endl;
int Len=Ans.length();
for(i=0;i<490-Len;i++)
cout<<0;
if(Ans.length()<=490)cout<<Ans;
else
for(i=Ans.length()-490;i<Ans.length();i++)
cout<<Ans[i];
return 0;
}
inline string ADD(string x,string y)
{
int i;
string Ans;
vector<int>X(max(x.length(),y.length())),Y(max(x.length(),y.length())),ans(1,0);
for(i=0;i<x.length();i++)X[i]=x[x.length()-i-1]-'0';
for(i=0;i<y.length();i++)Y[i]=y[y.length()-i-1]-'0';
for(i=0;i<max(x.length(),y.length());i++)
{
ans.push_back((X[i]+Y[i]+ans[i])/10);
ans[i]=(X[i]+Y[i]+ans[i])%10;
}
while(*(ans.end()-1)==0)
ans.pop_back();
for(i=0;i<ans.size();i++)
Ans.push_back(ans[ans.size()-i-1]+'0');
return Ans;
}