/*用sort預設排序的話,考慮ba和bConstraintsTime Limit: 1 secs, Memory Limit: 32 MBDescriptionDr 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. InputThe 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. OutputThe output of each test is the lexicographically smallest S. No redundant spaces are needed. Sample Input13aabacSample Outputaabac*/#include<iostream>#include <iomanip>#include<stdio.h>#include<cmath>#include<iomanip>#include<list>#include <map>#include <vector>#include <string>#include <algorithm>#include <sstream>#include <stack>#include<queue>#include<string.h>#include<set>using namespace std;bool cmp(const string &x1,const string &x2)//如果按照預設排序,考慮 ba,b{return x1+x2<x2+x1;}int main(){int T;cin>>T;for(int xx=0;xx<T;xx++){int n;cin>>n;vector<string> data(n);for(int i=0;i<n;i++)cin>>data[i];sort(data.begin(),data.end(),cmp);for(int i=0;i<n;i++)cout<<data[i];cout<<endl;}}