1. 程式人生 > >洛谷P1012 拼數

洛谷P1012 拼數

題目 ++ mes 輸出 sca clu name cout esp

題目描述

設有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

分析:顯然,就是字典序最大,利用string排序一下就好了.

#include<cstdio>
#include
<algorithm> #include<string> #include<iostream> using namespace std; #define MAXN 1000 int n,i;string s[MAXN]; int cmp(string s1,string s2){return s1+s2>s2+s1;} int main() { scanf("%d",&n); for(i=1;i<=n;i++)cin>>s[i]; sort(s+1,s+1+n,cmp); for(i=1;i<=n;i++)cout<<s[i];
return 0; }

洛谷P1012 拼數