Pagini recente » Cod sursa (job #3349776) | Cod sursa (job #3309515) | Cod sursa (job #3326225) | Cod sursa (job #1914465) | Cod sursa (job #3338452)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
int n,i,j,x,op,h1,h2,p1=1,sol;
string a,b;
unordered_map<int,int> fr;
int main()
{ fin>>a;
while(fin>>b)
{if(n==0) n=b.size();
h1=0;
for(i=0;i<n;i++)
h1=3*h1+b[i]-'a';
fr[h1]=1;
}
for(i=0;i<n;i++)
{if(i) p1*=3;
h2=3*h2+a[i]-'a';
}
sol+=fr[h2];
for(i=n;i<a.size();i++)
{h2=h2-p1*(a[i-n]-'a');
h2*=3;
h2+=a[i]-'a';
sol+=fr[h2];
}
fout<<sol;
return 0;
}