Pagini recente » Cod sursa (job #3120658) | Cod sursa (job #2156355) | Cod sursa (job #318313) | Cod sursa (job #1899209) | Cod sursa (job #1532104)
#include<cstdio>
#include<cstring>
#define n2 666013
char s[10000001],s1[21];
int i,j,n,m,k,l,v[666014],x=1,nr,nr1,sol;
int main ()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
gets(s);
gets(s1);
n=strlen(s1);
m=strlen(s);
for(i=0;i<n;i++)
{
nr=(nr*123)%n2+s[i];
nr=nr%n2;
if(i!=0)
{
x=x*123;
x=x%n2;
}
}
v[nr]++;
for(i=n;i<=m;i++)
{
nr=nr-((x*s[i-n])%n2);
nr=nr%n2;
if(nr<0)
nr+=n2;
nr=nr*123+s[i];
nr=nr%n2;
v[nr]++;
}
nr=0;
for(i=0;i<n;i++)
{
nr=nr*123+s1[i];
nr=nr%n2;
}
if(v[nr]>0)
{
sol+=v[nr];
v[nr]=0;
}
while(gets(s1)!=NULL)
{
nr=0;
for(i=0;i<n;i++)
{
nr=nr*123+s1[i];
nr=nr%n2;
}
if(v[nr]>0)
{
sol+=v[nr];
v[nr]=0;
}
}
printf("%d",sol);
return 0;
}