ZOJ 2006 Glass Beads

来源:互联网 发布:a星寻路算法教程 编辑:程序博客网 时间:2024/05/20 00:13
#ifdef _DEBUG#pragma warning(disable : 4996)#endif#include <iostream>#include <string>#include <vector>#include <stack>#include <queue>#include <deque>#include <set>#include <map>#include <algorithm>#include <functional>#include <sstream>#include <utility>#include <cstring>#include <cstdio>#include <cstdlib>#include <ctime>#include <cmath>#include <cctype>#define CLEAR(a, b) memset(a, b, sizeof(a))#define CLOSE() ios::sync_with_stdio(false)#define IN() freopen("in.txt", "r", stdin)#define OUT() freopen("out.txt", "w", stdout)#define PF(a) printf("%d\n", a)#define SF(a) scanf("%d", &a)#define SFF(a, b) scanf("%d%d", &a, &b)#define SFFF(a, b, c) scanf("%d%d%d", &a, &b, &c)#define FOR(i, a, b) for(int i = a; i < b; ++i)#define LL long long#define maxn 10005#define maxm 10005#define MOD  10007#define INF 10007using namespace std;//-------------------------CHC------------------------------//int len;char s[maxn];int Getmin() {int i = 0, j = 1, k = 0;while (i < len && j < len && k < len) {int t = s[(i + k) % len] - s[(j + k) % len];if (t == 0) ++k;else {if (t > 0) i += k + 1;else j += k + 1;if (i == j) ++j;k = 0;}}return i < j ? i : j;}int main() {int T;SF(T);while (T--) {scanf("%s", s);len = strlen(s);PF(Getmin() + 1);}return 0;}