【洛谷 1012】拼数

题目描述

设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数。

例如:n=3n=3时,33个整数1313,312312,343343联接成的最大整数为:3433121334331213

又如:n=4n=4时,44个整数77,1313,44,246246联接成的最大整数为:74246137424613

输入格式

第一行,一个正整数nn。

第二行,nn个正整数。

输出格式

一个正整数,表示最大的整数

输入输出样例

输入 #1
3
13 312 343
输出 #1
34331213

题解:简单水题见代码
(在网络流和最小生成树里插入一个橙题好像不太好)
#include<cstdio>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
string s[25];
bool cmp(string a,string b){
    return a+b>b+a;
} 
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>s[i];
    sort(s+1,s+n+1,cmp);
    for(int i=1;i<=n;i++)
        cout<<s[i];
    return 0;
}

 

上一篇:1012 数字分类(PAT乙级)


下一篇:PAT 1012 数字分类 C语言实现