Test Message

b759: 我明明就有說過= =

內容

烏龜又忘記交代給他的工作了。img1

「我真的記得你沒說過,真的」他辯解道
「喔是喔」瓜瓜說道
「真的啦」他繼續辯解道
雖然解決事情遠遠比辯解來的重要,
但我們還是請了學弟在 N 條字串的對話紀錄中尋找是否出現過交代工作的字串 X (1<=N<=10^5 , 字串總長度<=10^6)
想當然爾,學弟花了 7 分 40 秒就用二分搜和 SET 解決我們的問題了,
沒錯,我們找到了交代工作的字串 X (X 長度<=1000)
「這是在交代工作噢?! 我還以為你只是在打招呼!」
「如果是在交代工作,就應該把問題放前面,要做的是放後面,然後這樣擺..這樣挪..這樣我才看得懂啊!」
為了配合烏龜,我們決定把字串 X 以每個字元當作句首印出來一次,以跨越我們和他之間的代溝(GENERATION GAP)


輸入

輸入只有一行,輸入一字串 X,題目保證字串 X 中只會有大小寫的英文字母

xndrf

輸出

輸出有 N 行

輸出的第 i 行要從 X 字串的第 i 個字元開始輸出到印完整個 X 字串

xndrf
ndrfx
drfxn
rfxnd
fxndr


解題思路

開一個兩倍於限定大小的陣列,用一個指標指向開頭處。

迴圈執行輸入字串的長度次,每次執行迴圈輸出指標字串、將指標指向下一元素,然後將剛才輸出的第一個字元放到字串的末端後進入下一輪,迴圈結束即印出所有答案。


完整程式碼

AC (3ms, 84KB)
#include <stdio.h>
#include <string.h>

char s[2000010];

int main()
{
gets(s);
int len = strlen(s);
for (int i = 0; i < len; i++)
{
puts(s + i);
s[len + i] = s[i];
}
return 0;
}