洛谷P1012 [NOIP1998 提高组] 拼数
次阅读
2 min read
题目描述
设有 个正整数 ,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。
输入格式
第一行有一个整数,表示数字个数 。
第二行有 个整数,表示给出的 个整数 。
输出格式
一个正整数,表示最大的整数
样例 #1
样例输入 #1
3
13 312 343
样例输出 #1
34331213
样例 #2
样例输入 #2
4
7 13 4 246
样例输出 #2
7424613
提示
对于全部的测试点,保证 ,。
题解
#include <bits/stdc++.h>
using namespace std;
int n;
string a[50];
bool cmp (string a, string b) {
return (a + b) > (b + a);
}
int main() {
cin >> 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];
return 0;
}