sort()排序一下就好了,注意输出1000个字符一行
#include<iostream>
#include<queue>
#include<vector>
#include<stack>
#include<algorithm>
#include<cmath>
#include<set>
#include<map>
#include<cstdio>
using namespace std;
bool cmp(string s1,string s2){
return s1+s2<s2+s1;
}
int main(){
int n;
scanf("%d",&n);
string str[10000];
int cnt=0;
while(n--){
char f[20];
scanf("%s",f);
str[cnt++]=f;
}
sort(str,str+cnt,cmp);
string out="";
for(int i=0;i<cnt;i++) out+=str[i];
int len=out.size();
for(int i=0;i<len;i++){
printf("%c",out[i]);
if((i+1)%1000==0) printf("\n");
}
return 0;
}