http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11544&courseid=0
小明的烦恼——找字符串 |
Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:32768KB |
Total submit users: 108, Accepted users: 68 |
Problem 11544 : No special judgement |
Problem description |
小明是个很优秀的同学,他除了特别公正外,他也很细心,当然老师肯定也知道,这不,老师又有事情找他帮忙了,老师每周都会给他一个字符串A,然后问小明“A字符串的循环移位产生的所有字符串中,字典序最小的是哪个”,于是小明屁颠屁颠的一个一个比对,但是长久下来,小明实在是受不了了,所以他想请你帮帮他。同样,你帮他解决,你就会多AC一个题目。 Hint:如果A字符串为bcda,那么其所有的循环移位的新字符串有cdab,dabc,abcd,和他自己bcda一共四个,然后在这四个中,字典序最小的为abcd,那么输出这个字符串中的第一次字符在原字符串中的位置,为3,如果有多个结果,输出数字最小的。 |
Input |
输入有T组, 以后每组第一行有一个字符串S,长度<=5000000,都是小写字母。 |
Output |
对于每一个case,输出结果。 |
Sample Input |
4bcda aaaaadab |
Sample Output |
3002 |
Problem Source |
HUNNU Contest |
#include#include #include using namespace std;char str[5000000];int main(){ int t; scanf("%d",&t); while(t--) { scanf("%s",str); int len=strlen(str); int i=0,j=1,k=0; while(i 0) { i=i+k+1; k=0; } if(l<0) { j=j+k+1; k=0; } if(i==j) { j++; } } printf("%d\n",min(i,j)); } return 0;}