思路:这个题主要的特别之处在与排序。
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
struct node
{
string s;
} Q[100000];
bool cmp(node a,node b)
{
if(a.s+b.s<b.s+a.s)
return true;
else return false;
}
int main()
{
int n;
cin>>n;
for(int i=0; i<n; i++)
cin>>Q[i].s;
sort(Q,Q+n,cmp);
string str;
for(int i=0; i<n; i++)
str+=Q[i].s;
int i=0;
while(i<str.size())
{
cout<<str[i++];
if(i%1000==0)
cout<<"\n";
}
if(str.size()%1000!=0)
cout<<"\n";
return 0;
}