Pagini recente » Cod sursa (job #640309) | Borderou de evaluare (job #1992092) | Cod sursa (job #3169471) | Borderou de evaluare (job #1575488) | Cod sursa (job #622459)
Cod sursa(job #622459)
#include <stdio.h>
#include <string.h>
#define dim 2000001
char a[dim],b[dim];
int n,m,t,c[dim];
void rabin_karp()
{
int i,j;
for (i=0;i<n-m;i++)
for (j=0;j<m;j++)
if (a[i+j]==b[j])
{
c[i]++;
if (c[i]==m)//total fit
t++;
}
else
break;
}
int main()
{
int i,j;
freopen ("strmatch.in","r",stdin);
freopen ("strmatch.out","w",stdout);
scanf("%s",b);
scanf("%s",a);
n = strlen(a);
m = strlen(b);
rabin_karp();
printf("%d\n",t);
for (i=0,j=0;(j<t)&&(j<1000);i++)
{
if (c[i]==m)
{
printf("%d ",i);
j++;
}
}
return 0;
}