Pagini recente » Cod sursa (job #199840) | Istoria paginii runda/oni2010x2/clasament | Istoria paginii runda/cdib_6789/clasament | Istoria paginii runda/avram_iancu_10 | Cod sursa (job #496749)
Cod sursa(job #496749)
#include <stdio.h>
#include <string.h>
int nr,sol,M,i,m,n,pow;
char str[10000005],s[25];
void add(int x)
{
}
int src(int x)
{
return 0;
}
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
fgets(str,10000005,stdin);
M=999983;
while(!feof(stdin))
{
fgets(s,25,stdin);
if(n==0)
{
n=strlen(s)-1;
if(s[n]=='\n') n--;
}
if(!feof(stdin))
{
sol=0;
for(i=0;i<=n;i++)
sol=((sol*4)%M+s[i]-'a')%M;
if(src(sol)==0) add(sol);
}
}
sol=0;
nr=0;
for(i=0;i<=n;i++)
sol=((sol*4)%M+str[i]-'a')%M;
if(src(sol)) nr++;
m=strlen(str)-1;
if(str[m]=='\n') m--;
for(i=1;i<=n;i++)
pow=(pow*4)%M;
for(i=n+1;i<=m;i++)
{
sol=((sol+M-(pow*(str[i-n-1]-'a'))%M)%M+str[i]-'a')%M;
if(src(sol)) nr++;
}
printf("%d\n",nr);
return 0;
}