51nod1097

  从这题算是学到了排序的技巧

#include<bits/stdc++.h>
using namespace std;
string s[10000+10];
bool cmp(string s1,string s2)
{
    return s1+s2<s2+s1;
}
int main()
{
    int n,len=0;
    scanf("%d",&n);
    for(int i=0;i<n;i++) cin>>s[i];
    sort(s,s+n,cmp);
    for(int i=0;i<n;i++)
    {
        len+=s[i].size();
        if(len<=1000)
            cout<<s[i];
        else
        {
            
            len-=s[i].size();
            for(int j=0;j<s[i].size();j++)
            {
                if(len==1000)
                    cout<<endl,len-=1000;
                len++;
                cout<<s[i][j];
                
            }
        }

    }
    return 0;
}
原文地址:https://www.cnblogs.com/eason9906/p/11754812.html