Pagini recente » Cod sursa (job #2168393) | Cod sursa (job #1709820) | Cod sursa (job #210161) | Cod sursa (job #2654760) | Cod sursa (job #1486156)
#include<fstream>
#include<vector>
#include<cstring>
#define mod 847129
using namespace std;
ifstream f("abc2.in"); ofstream g("abc2.out");
char s[10000010],t[25];
vector <int> h[mod+2];
int Cautare(int x)
{ int i,r=x%mod;
for(i=0;i<h[r].size();i++)
if(h[r][i]==x) return 1;
return 0;
}
int main()
{ f>>(s+1);
int i,m,n=strlen(s+1),nr=0,a,p3[25];
p3[1]=1;
for(i=2;i<=20;i++) p3[i]=p3[i-1]*3;
while(f>>(t+1))
{ m=strlen(t+1); a=0;
for(i=1;i<=m;i++) a=a+p3[i]*(t[i]-97);
if(!Cautare(a)) h[a%mod].push_back(a);
}
a=0;
for(i=1;i<=m;i++) a=a+p3[i]*(s[i]-97);
nr+=Cautare(a);
for(i=m+1;i<=n;i++) {a/=3; a=a+p3[m]*(s[i]-97); nr+= Cautare(a);}
g<<nr<<"\n"; g.close(); return 0;
}