题目描述
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
输入
n
n个数
输出
联接成的多位数
样例输入 复制
3 13 312 343
样例输出 复制
34331213
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string str[25];
bool cmp(string a, string b)
{
string t1 = a + b, t2 = b + a;
return t1 > t2;
}
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> str[i];
sort(str, str + n, cmp);
for (int i = 0; i < n; i++)
printf("%s",str[i].c_str());
return 0;
}