Cod sursa(job #1216110)

Utilizator pavlov.ionPavlov Ion pavlov.ion Data 3 august 2014 13:32:41
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#include<vector>
#include<cstring>
#define MAXN 666013
using namespace std;
int P=3,Q=MAXN,exp[21];
int H[MAXN];
char s[10000000],s1[21];
void putere() {
	   int i;
	   exp[0]=1;
	   for(i=1;i<=20;i++)
	        exp[i]=P*exp[i-1];
}
int main() {
    ifstream cin("abc2.in");
    ofstream cout("abc2.out");
    putere();
	int i,j,N,M,f=0,V,k=0;
	cin>>s1;
	M=strlen(s1);
	while(!cin.eof()) {	
	cin>>s;				  		  					   
    N=strlen(s);
	f=0;	  
	for(i=0;i<N;i++)
	     f+=s[i]*exp[i];
    V=f%MAXN;
	H[V]=1;	   		  			  
  }  
  f=0;
  for(i=0;i<N;i++)
         f+=s1[i]*exp[i];    
   if(H[f%MAXN]>0) k++; 
  while(i<M) {		 
  	  f=f-s1[i-N];
	  f=f/P;
	  f+=s1[i]*exp[N-1];
	  if(H[f%MAXN]>0) k++;
	  i++;
}   
cout<<k;       
return 0;
}