题意:求n个数字连接所成的最大的那个数字,实际上就是n个数字对应字符串的一个字典序,两个数字字符串a和b,要么a+b>b+a,要么a+b<=b+a,按这个规律对数字字符串排序即可
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string str[55];
bool cmp(string a,string b)
{
return a+b>b+a;
}
int main()
{
int n;
while(cin>>n&&n)
{
for(int i=0;i<n;i++)
cin>>str[i];
sort(str,str+n,cmp);
string ans=str[0];
for(int i=1;i<n;i++)
ans+=str[i];
cout<<ans<<endl;
}
return 0;
}