51nod 1097 拼成最小的数

来源:互联网 发布:c语言网络编程 编辑:程序博客网 时间:2024/06/11 07:18

题目链接

思路:这个题主要的特别之处在与排序。

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