Pagini recente » Cod sursa (job #2986834) | Cod sursa (job #176786) | Cod sursa (job #156094) | Cod sursa (job #230397) | Cod sursa (job #1216110)
#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;
}