链接:https://ac.nowcoder.com/acm/problem/16783
来源:牛客网
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld
题目描述
设有n个正整数(n ≤ 20),将它们联接成一排,组成一个最大的多位整数。
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613
输入描述:
第一行,一个正整数n。
第二行,n个正整数。
输出描述:
一个正整数,表示最大的整数
示例1
输入
3 13 312 343
输出
34331213
1 #include <bits/stdc++.h> 2 typedef long long LL; 3 #define pb push_back 4 #define mst(a) memset(a,0,sizeof(a)) 5 const int INF = 0x3f3f3f3f; 6 const LL LINF = 0x3f3f3f3f3f3f3f3f; 7 const double eps = 1e-8; 8 const int mod = 1e9+7; 9 const int maxn = 1e5+10; 10 using namespace std; 11 12 vector<string> vt; 13 14 bool cmp(string a,string b) 15 { 16 return a+b > b+a; 17 } 18 19 int main() 20 { 21 #ifdef DEBUG 22 freopen("sample.txt","r",stdin); //freopen("data.out", "w", stdout); 23 #endif 24 25 int n; 26 scanf("%d",&n); 27 for(int i=1;i<=n;i++) 28 { 29 string t; 30 cin>>t; 31 vt.push_back(t); 32 } 33 sort(vt.begin(), vt.end(), cmp); 34 string ans=""; 35 for(auto it : vt) 36 ans += it; 37 cout<<ans<<" "; 38 39 return 0; 40 }
-