Problem description |
小明是個非常優秀的同學。他除了特别公正外,他也非常細心,當然老師肯定也知道,這不,老師又有事情找他幫忙了。老師每周都會給他一個字元串A。然後問小明“A字元串的循環移位産生的全部字元串中,字典序最小的是哪個”。于是小明屁颠屁颠的一個一個比對,可是長久下來,小明實在是受不了了,是以他想請你幫幫他。 相同,你幫他解決。你就會多AC一個題目。 Hint: 假設A字元串為bcda,那麼其全部的循環移位的新字元串有cdab。dabc,abcd。和他自己bcda一共四個,然後在這四個中。字典序最小的為abcd,那麼輸出這個字元串中的第一次字元在原字元串中的位置。為3,假設有多個結果,輸出數字最小的。 |
Input |
輸入有T組, 以後每組第一行有一個字元串S。長度<=5000000,都是小寫字母。 |
Output |
對于每個case。輸出結果。 |
Sample Input |
|
Sample Output |
|
Problem Source |
HUNNU Contest //i,j一開始指向第一和第二個字元,k代表i,j開始的字元串最長比對的長度 比如 abcdabbcabdc 第一個a位置為0,第二個a位置為4。第三個位置為8 如果i=0,j=4的時候(這裡我們僅僅是如果的一個中間過程) l相應字元相等,k=1 那麼i+k,j+k就是第二個位置,也相等。k=2,比對長度為2 可是第三個 s[i+k]>s[j+k] 那麼兩者比較的字典序最小的是j所指的位置,j要保留。i肯定不是字典序最小的,是以i直接偏移到i+k的後面去 反之亦然 |