题目描述
给定N个正整数,把这N个正整数以不同顺序被连接起来后,我们将得到一个新的整数。例如,当给定3个整数34,23,133时,我们可以得到3423133,2334133等6个新整数。
该问题要求你求出通过连接得到的新整数的最大值。
输入
多组测试数据(小于10组)。
每组测试数据共2行:
第1行,为一个正整数N(1<N<200);
第2行,为N个正整数,保证在int范围内。
输出
每组测试数据输出1行,输出通过连接得到的新整数的最大值。
输入样例
3
34 23 133
输出样例
3423133
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN 210
bool cmp(string a, string b)
{
string tmp1 = a + b;
string tmp2 = b + a;
return tmp1 > tmp2;
}
string s[MAXN];
int main()
{
int n;
while(~scanf("%d", &n))
{
for(int i = 0; i < n; i++)
cin >> s[i];
sort(s, s+n, cmp);
for(int i = 0; i < n; i++)
cout << s[i];
printf("\n");
}
}