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;
}

 

posted @ 2019-02-09 17:57  eason99  阅读(52)  评论(0编辑  收藏  举报