显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char a[600001];
int n;
int main()
{
freopen("MinRepresentations.in","r",stdin);
freopen("MinRepresentations.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
a[i+n]=a[i];
}
a[2*n+1]='\0';
int i=1,j=2;
while(i<=n && j<=n){
if(a[i]>a[j]){
i=j;j++;
}
if(a[i]<a[j]){
j++;
}
if(a[i]==a[j])
{
int k1=i+1,k2=j+1;
while(a[k1]==a[k2]){k1++;k2++;}
if(a[k1]>a[k2]){i=j;j++;}
if(a[k1]<a[k2]) j++;
}
}
for(j=0;j<n;j++)
cout<<a[i+j];
}