Samall String

来源:互联网 发布:对淘宝店铺怎么投诉 编辑:程序博客网 时间:2024/06/03 15:14

Description:
Dr lee cuts a string S into N pieces,s[1],…,s[N].
Now, Dr lee gives you these N sub-strings: s[1],…s[N]. There might be several possibilities that the string S could be. For example, if Dr. lee gives you three sub-strings {“a”,“ab”,”ac”}, the string S could be “aabac”,”aacab”,”abaac”,…
Your task is to output the lexicographically smallest S.

Input:
The first line of the input is a positive integer T. T is the number of the test cases followed.
The first line of each test case is a positive integer N (1 <=N<= 8 ) which represents the number of sub-strings. After that, N lines followed. The i-th line is the i-th sub-string s[i]. Assume that the length of each sub-string is positive and less than 100.

Output:
The output of each test is the lexicographically smallest S. No redundant spaces are needed.

Sample
Input:
1
3
a
ab
ac
Output:
aabac

#include<iostream>  #include<cstdio>  #include<cstring>  #include<algorithm>  #include<cmath>  using namespace std;  const int N=50000+10;  string s[N];  int cmp(string a,string b)  {          return a+b < b+a;}  int main()  {      int a;      cin>>a;    for(int k=0;k < a;k++){        int n;        cin>>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;  }