Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #define SIZE 1000000
- int ans(char *str1, char *str2, int *p)
- {
- if (str1[0] == str2[0])
- p[0] = 1;
- int k, i;
- for (i = 1; i < strlen(str2); ++i)
- {
- k = p[i - 1];
- while (k > 0 && str1[k] != str2[i])
- k = p[k - 1];
- if (str1[k] == str2[i])
- ++k;
- p[i] = k;
- }
- return p[i - 1];
- }
- int main(void)
- {
- static char str1[SIZE + 1];
- static char str2[SIZE + 1];
- scanf("%1000000s%1000000s", str1, str2);
- static int p1[SIZE] = { 0 };
- static int p2[SIZE] = { 0 };
- printf("%d ", ans(str1, str2, p1));
- printf("%d", ans(str2, str1, p2));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement