1、昨天刚做过类似的题(UVa 10905),不过这次的数据范围大了点,一次AC~
#include<cstdio>
#include<iostream>#include<algorithm>
using namespace std;
int n;
string num[100010];
bool cmp(const string &a,const string &b){
return a+b>b+a;
}
int main(){
int n;
while(scanf("%d",&n)==1&&n){
for(int i=0;i<n;i++)
cin>>num[i];
sort(num,num+n,cmp);
for(int i=0;i<n;i++)
cout<<num[i];
cout<<endl;
}
return 0;
}