CodeForces 632 C.The Smallest String Concatenation(水~)

来源:互联网 发布:怎么检测网络是否正常 编辑:程序博客网 时间:2024/06/07 11:38

Description
给出n个字符串a1,…,an,将这n个字符串组合起来,问字典序最小的
Input
第一行一整数n表示字符串数量,之后n个串长不超过50的串,总串厂不超过5e4(1<=n<=5e4)
Output
输出字典序最小的组合方案
Sample Input
4
abba
abacaba
bcd
er
Sample Output
abacabaabbabcder
Solution
如果a+b < b+a说明a串必然在b串前面,按此规则给这n个串排个序依次输出即可
Code

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 55555int n;string s[maxn];bool cmp(string a,string b){    return a+b<b+a;}int main(){    while(~scanf("%d",&n))    {        for(int i=0;i<n;i++)cin>>s[i];        sort(s,s+n,cmp);        for(int i=0;i<n;i++)cout<<s[i];        cout<<endl;    }    return 0;}
0 0