int getmin(int n)
{
int i = 0,j = 1,k = 0,t;
//表示从i开始k长度和从j开始k长度的字符串相同
while(i < n && j < n && k < n)
{
t = a[(i+k)%n] - a[(j+k)%n];
//t用来计算相对应位置上那个字典序较大
if(!t) k++;//字符相等的情况
else
{
if(t > 0) i += k+1;//i位置大,最大表示法: j += k+1
else j += k+1;//j位置大,最大表示法: i += k+1
if(i == j) j++;
k = 0;
}
}
return i >j ?j :i;
}
int getmax(int n)
{
int i = 0,j = 1,k = 0,t;
while(i < n && j < n && k < n)
{
t = a[(i+k)%n] - a[(j+k)%n];
if(!t) k++;
else
{
if(t > 0) j+= k+1;
else i+= k+1;
if(i == j) j++;
k = 0;
}
}
return i >j ?j :i;
}