3. What will be the output of the following C code snippet using Rabin Karp to find pattern "abc" in text "ababc"?
#include
#include
#define base 256
#define prime 101
int main() {
char text[] = "ababc";
char pattern[] = "abc";
int n = strlen(text), m = strlen(pattern);
int p = 0, t = 0, h = 1, i, j;
for (i = 0; i < m-1; i++)
h = (h * base) % prime;
for (i = 0; i < m; i++) {
p = (base * p + pattern[i]) % prime;
t = (base * t + text[i]) % prime;
}
for (i = 0; i <= n - m; i++) {
if (p == t) {
for (j = 0; j < m; j++) {
if (text[i+j] != pattern[j])
break;
}
if (j == m)
printf("Pattern found at index %d\n", i);
}
if (i < n - m) {
t = (base * (t - text[i] * h) + text[i + m]) % prime;
if (t < 0) t = t + prime;
}
}
return 0;
}