Pagini recente » Cod sursa (job #703829) | Cod sursa (job #2567120) | Cod sursa (job #2321259) | Cod sursa (job #2819490) | Cod sursa (job #709316)
Cod sursa(job #709316)
#include<stdio.h>
#include<string.h>
#define mod 127
char a[2000000],b[2000000];
int n,m,i,j,p,v[2000000];
unsigned ha,hb;
int main()
{freopen("strmatch.in","r",stdin);
freopen("strmatch.out","w",stdout);
scanf("%s",a);
scanf("%s",b);
n=strlen(a);
m=strlen(b);
for(i=0,p=1;i<n;i++)
{ha=ha*100+a[i]%mod;
hb=hb*100+b[i]%mod;
if(!i)
continue;
p=p*100;
}
for(i=0,j=1;i<m-n;i++)
{if(ha==hb)
{v[0]++;
v[j++]=i;
}
hb=(hb%p)*100+b[i+n]%mod;
}
printf("%d\n",v[0]);
for(i=1;(i<=1000)&&(v[i]!=0);i++)
printf("%d ",v[i]);
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}