#include <stdio.h>
#include <string.h>
int rotate_match_sub(char *p1, char *p2, int n) {
if (n == 0) return 0;
if (strcmp(p1
, p2
) == 0) return 1; char c = p1[0];
unsigned int i;
for (i
= 0; i
< strlen(p1
) - 1; i
++) p1[i] = p1[i + 1];
p1[i] = c;
return rotate_match_sub(p1, p2, n - 1);
}
int rotate_match(char *p1, char *p2) {
return rotate_match_sub
(p1
, p2
, strlen(p1
)); }
#define N 100
int main() {
char s[N], p1[N], p2[N];
printf("%s:%s:%s\n", s
, p2
, rotate_match
(p1
, p2
) == 1 ? "true" : "false");
printf("%s:%s:%s\n", s
, p2
, rotate_match
(p1
, p2
) == 1 ? "true" : "false");
printf("%s:%s:%s\n", s
, p2
, rotate_match
(p1
, p2
) == 1 ? "true" : "false");
return 0;
}
/* end */
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCByb3RhdGVfbWF0Y2hfc3ViKGNoYXIgKnAxLCBjaGFyICpwMiwgaW50IG4pIHsKICBpZiAobiA9PSAwKSByZXR1cm4gMDsKICBpZiAoc3RyY21wKHAxLCBwMikgPT0gMCkgcmV0dXJuIDE7CiAgY2hhciBjID0gcDFbMF07CgogIHVuc2lnbmVkIGludCBpOwogIGZvciAoaSA9IDA7IGkgPCBzdHJsZW4ocDEpIC0gMTsgaSsrKQogICAgcDFbaV0gPSBwMVtpICsgMV07CiAgcDFbaV0gPSBjOwogIHJldHVybiByb3RhdGVfbWF0Y2hfc3ViKHAxLCBwMiwgbiAtIDEpOwp9CgppbnQgcm90YXRlX21hdGNoKGNoYXIgKnAxLCBjaGFyICpwMikgewogIHJldHVybiByb3RhdGVfbWF0Y2hfc3ViKHAxLCBwMiwgc3RybGVuKHAxKSk7Cn0KCiNkZWZpbmUgTiAxMDAKaW50IG1haW4oKSB7CiAgY2hhciBzW05dLCBwMVtOXSwgcDJbTl07CiAgc3RyY3B5KHMsICJhYmNkZSIpOyBzdHJjcHkocDIsICJkZWFiYyIpOyBzdHJjcHkocDEsIHMpOwogIHByaW50ZigiJXM6JXM6JXNcbiIsIHMsIHAyLCByb3RhdGVfbWF0Y2gocDEsIHAyKSA9PSAxID8gInRydWUiIDogImZhbHNlIik7CgogIHN0cmNweShzLCAiYWJjZGUiKTsgc3RyY3B5KHAyLCAiY2RlYmEiKTsgc3RyY3B5KHAxLCBzKTsKICBwcmludGYoIiVzOiVzOiVzXG4iLCBzLCBwMiwgcm90YXRlX21hdGNoKHAxLCBwMikgPT0gMSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwoKICBzdHJjcHkocywgImFhYWFhIik7IHN0cmNweShwMiwgImFhYSIpOyBzdHJjcHkocDEsIHMpOwogIHByaW50ZigiJXM6JXM6JXNcbiIsIHMsIHAyLCByb3RhdGVfbWF0Y2gocDEsIHAyKSA9PSAxID8gInRydWUiIDogImZhbHNlIik7CgogIHJldHVybiAwOwp9Ci8qIGVuZCAqLwo=