题意:刚开始是直接比较两个数的大小,果断wrong了,后来发现92和9的这类是错的,恩,其实我们只要每次都将两个数的组合情况比较一下,也就可以得到答案了
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int cmp(string a,string b)
{
if(a.size() == b.size())
return a>b;
else
{
string c,d;
c = a + b;
d = b + a;
return c > d;
}
}
int main()
{
int n;
string a[100];
while(scanf("%d",&n) != EOF && n)
{
for(int i = 0; i < n; i++)
cin>>a[i];
sort(a,a+n,cmp);
for(int i = 0; i < n; i++)
cout<<a[i];
cout<<endl;
}
return 0;
}