Cod sursa(job #496749)

Utilizator ZethpixZethpix Zethpix Data 30 octombrie 2010 15:05:41
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#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;
}