洛谷P1012 拼數
阿新 • • 發佈:2017-09-13
題目 ++ 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 拼數