string的应用

 The Smallest String Concatenation
Time Limit:3000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
Submit  Status  Practice  CodeForces 632C

Description

You're given a list of n strings a1, a2, ..., an. You'd like to concatenate them together in some order such that the resulting string would be lexicographically smallest.

Given the list of strings, output the lexicographically smallest concatenation.

Input

The first line contains integer n — the number of strings (1 ≤ n ≤ 5·104).

Each of the next n lines contains one string ai (1 ≤ |ai| ≤ 50) consisting of only lowercase English letters. The sum of string lengths will not exceed 5·104.

Output

Print the only string a — the lexicographically smallest string concatenation.

Sample Input

Input
4
abba
abacaba
bcd
er
Output
abacabaabbabcder
Input
5
x
xx
xxa
xxaa
xxaaa
Output
xxaaaxxaaxxaxxx
Input
3
c
cb
cba
Output
cbacbc
 
     
string的使用,之前从未用过,比赛的时候用的冒泡排序,结果方法不对,老是wa,原来要自己与自己相加后在比较大小。
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
string str[50010];
int cmp(string str1,string str2)
{
    return str1+str2<str2+str1;
}
int main()
{
    int n;
    while(cin>>n)
    {
        int i;
        for(i=0;i<n;i++)
        cin>>str[i];
        sort(str,str+n,cmp);
        for(i=0;i<n;i++)
            cout<<str[i];
        cout<<endl;
    }
}


你可能感兴趣的:(String)