#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
using namespace std;
#define rep(i, l, r) for (int i = l; i <= r; i++)
#define REP(i, l, r) for (int i = l; i >= r; i--)
#define MAXN 100010
char ch[MAXN];
int a[MAXN], n;
inline int read() {
int x = 0, f = 1; char ch;
while (ch<'0' || ch>'9') {if (ch == '-') f = -1; ch = getchar();}
while (ch>='0' && ch<='9') x = x*10 + ch - '0', ch = getchar();
return x*f;
}
inline int minimum(int *a, int n) {
int I = 0, J = 1, k = 0;
for (; I<n && J<n && k<n; ) {
if (a[(I+k)%n] == a[(J+k)%n]) k++;
else {
if (a[(I+k)%n] > a[(J+k)%n]) I += k+1;
else J += k+1;
if (I == J) J++;
k = 0;
}
}
return min(I, J) + 1;
}
int main() {
int T_T; T_T = read();
while (T_T--) {
scanf("%s", ch);
n = strlen(ch);
rep(i, 0, n-1) a[i] = ch[i];
printf("%d\n", minimum(a, n));
}
return 0;
}
noi2015模板-最小表示
最新推荐文章于 2022-11-24 08:57:02 发布