Luogu P1012 拼数

 P1012 拼数

题目描述

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

例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213

又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613

输入输出格式

输入格式:

 

第一行,一个正整数n。

第二行,n个正整数。

 

输出格式:

 

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

 

输入输出样例

输入样例#1:
3
13 312 343
输出样例#1:
34331213

说明

1998noip提高组

 

 

  这可以说是一道非常简单的题了(stl大法好)

  string一上,谁与争锋?

  直接看代码吧。

 

 1 #include 
 2 #include <string>
 3 #include 
 4 using namespace std;
 5 
 6 string str[25];
 7 
 8 int cmp(string a, string b)
 9 {
10     return a+b>b+a;    //特别要注意这里
11 }                    // "10"+"1" > "1"+"10"的区别
12 
13 int main()
14 {
15     int n;
16     cin >> n;
17     for(int i=1; i<=n; i++)
18         cin >> str[i];
19     sort(str+1, str+1+n, cmp);
20     for(int i=1; i<=n; i++)
21         cout << str[i];
22     return 0;
23 }

 

转载于:https://www.cnblogs.com/yBaka/p/7382222.html

你可能感兴趣的:(Luogu P1012 拼数)