Pagini recente » Cod sursa (job #1333702) | Cod sursa (job #1983921) | Cod sursa (job #1666686) | Cod sursa (job #129255) | Cod sursa (job #1997526)
#include <iostream>
#include <fstream>
#include <string>
#define MOD 666013
using namespace std;
ifstream si("abc2.in");
ofstream so("abc2.out");
bool h[MOD+1];
int main()
{
string s;
si>>s;
string x;
int n;
while(1)
{
if(si.eof())
break;
si>>x;
n=x.size();
int cod=0;
for(int i=0;i<n;++i)
{
cod=(cod*3+x[i]-'a')%MOD;
}
h[cod]=1;
}
int m=s.size(),cod=0;
for(int i=0;i<n;++i)
{
cod=(cod*3+s[i]-'a')%MOD;
}
int p3=1;
for(int i=1;i<n;++i)
{
p3=(p3*3)%MOD;
}
//cout<<cod;
int cont=0;
if(h[cod])
{
++cont;
//cout<<0<<' ';
}
for(int i=n;i<m;++i)
{
//cout<<(cod-(p3*(s[i-n]-'a'))%MOD+MOD)%MOD<<'\n';;
cod=((cod-(p3*(s[i-n]-'a'))%MOD+MOD)*3+s[i]-'a')%MOD;
if(h[cod])
{
//cout<<i-n+1<<' ';
++cont;
}
}
so<<cont;
return 0;
}