UVa-1584 Circular Sequence

#include<iostream>

#include<cstdio>

#include<cstring>

using namespace std;

bool cmp(char a[],int p,int q,int k)

{

    for(int i=0;i<k;i++)

    {

        if(a[(p+i)%k]<a[(q+i)%k])

            return 1;

        else if(a[(p+i)%k]>a[(q+i)%k])

            return 0;

    }

    return 0;

}

int main()

{

    int t;

    cin>>t;

    while(t--)

    {

        char a[110]={};

        cin>>a;

        int ans=0,k=strlen(a);

        for(int i=1;i<k;i++)

            if(cmp(a,i,ans,k))

                ans=i;

        for(int i=0;i<k;i++)

            cout<<a[(i+ans)%k];

        cout<<endl;

    }

}

你可能感兴趣的:(sequence)