解法很简单,排序+输出。
bool cmp(string c,string d)
{
x=c+d;
y=d+c;
return x<y;
}
排序方法:
#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(), (x).end()
#define for0(a, n) for (int (a) = 0; (a) < (n); (a)++)
#define for1(a, n) for (int (a) = 1; (a) <= (n); (a)++)
typedef long long ll;
typedef pair<int, int> pii;
const int INF =0x3f3f3f3f;
const int maxn=50000 ;
string a[maxn+10];
int n;
string x,y;
bool cmp(string c,string d)
{
x=c+d;
y=d+c;
return x<y;
}
int main()
{
while(cin>>n)
{
for1(i,n)
{
cin>>a[i];
}
sort(a+1,a+1+n,cmp);
for1(i,n)
{
cout<<a[i];
}
cout<<endl;
}
return 0;
}