10905 - Children's Game----需要考虑全面!(使用简单方法!!!!)

来源:互联网 发布:黄景瑜是淘宝什么模特 编辑:程序博客网 时间:2024/05/01 06:55
#include<cstdlib>#include<iostream>#include<cstdio>#include<cmath>#include<set>#include<cstring>#include <algorithm>#define N 60#define MIN 1e-11#define M 32010#define MM 70000using namespace std;int n,t;char a[N][100];int strcmpp(char a[],char b[]){    int lena=strlen(a),lenb=strlen(b);    int i=0;    for(;i<lena||i<lenb;++i)    {        if(i>=lena)        {            if(a[i%lena]<b[i])            return-1;            if(a[i%lena]>b[i])            return 1;        }        else if(i>=lenb)        {            if(b[i%lenb]<a[i])            return 1;            if(b[i%lenb]>a[i])            return -1;        }        else        {            if(a[i]<b[i])            return-1;            if(a[i]>b[i])            return 1;        }    }    //以下为修改之后添加的代码!!    int len=lena+lenb;    for(;i<len;i++)    {        if(b[i-lena]>a[i-lenb])        return 1;        else if(b[i-lena]<a[i-lenb])        return -1;    }    //    return 0;}int strcmppp(char a[],char b[])//更好的方法,直接按照题意来比较大小,好!!!{    char bb[200]="",aa[200]="";    strcat(aa,a);    strcat(aa,b);    strcat(bb,b);    strcat(bb,a);    return strcmp(aa,bb);}int cmp(const void *a,const void *b){return -strcmpp((char*)a,(char*)b);}int main(){#ifndef ONLINE_JUDGE    freopen("ex.in","r",stdin);#endif    while(scanf("%d",&n)&&n)    {        for(int i=0;i<n;++i)        scanf("%s",a[i]);//        cout<<"strcmpp(a[0],a[1])="<<strcmpp(a[0],a[1])<<endl;        qsort(a,n,sizeof(a[0]),cmp);        for(int i=0;i<n;++i)        printf("%s",a[i]);            printf("\n");    }    return 0;}


原创粉丝点击