洛谷P1012 拼数
题目描述 设有 nn n 个正整数 (n≤20)(n≤20) ( n ≤ 2 0 ) ,将它们联接成一排, 组成一个最大的多位整数。 例如: n=3 时, 3 个整数 13 , 312 , 343 联接成的最大整数为: 34331213 又如: n=4 时, 4 个整数 7 , 13 , 4 , 246 联接成的最大整数为: 7424613 输入输出格式 输入格式: 第一行,一个正整数 n 。 第二行, n 个正整数。 输出格式: 一个正整数,表示最大的整数 输入输出样例 输入样例#1: 复制 3 13 312 343 输出样例#1: 复制 34331213 快排或者冒泡 冒泡的原理是每次将一个无论和谁组合 都是将它放在后面最优的选出来,选n-1次最小的就可以了。 #include<iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n; string s[ 22 ]; bool cmp( string a, string b){ return a+b>b+ a; } int main(){ scanf( " %d " ,& n); for ( int i= 1 ;i<=n;i++)cin>> s[i]; sort(s + 1 ,s+n+ 1