Cod sursa(job #1518898)

Utilizator ipus1Stefan Enescu ipus1 Data 6 noiembrie 2015 15:57:08
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<cstdio>
#include<cstring>
#define mod 50000007
char v[10000001],v2[21];
bool vec[50000010];
int main ()
{freopen ("abc2.in","r",stdin);
freopen ("abc2.out","w",stdout);
int n,i,k,p,s=0,p4,x;
scanf("%s",&v);
n=strlen(v);
p=0;
while(scanf("%s",&v2)!=EOF)
	{x=0;
	if(p==0)
		k=strlen(v2);
	for(i=0;i<k;i++)
		x=(x*4+v2[i]-'a'+1)%mod;
	vec[x]=1;
	}
x=0;
for(i=0;i<k;i++)
	x=(x*4+v[i]-'a'+1)%mod;
if(vec[x]==1)
	s++;
p4=1;
for(i=1;i<k;i++)
	p4*=4;
for(i=k;i<n;i++)
	{x=((x-((v[i-k]-'a'+1)*p4)%mod+mod)*4+v[i]-'a'+1)%mod;
	if(vec[x]==1)
		s++;
	}
printf("%d",s);
return 0;
}