Pagini recente » Cod sursa (job #707498) | Cod sursa (job #2705681) | Cod sursa (job #2767049) | Cod sursa (job #707497) | Cod sursa (job #2219801)
#include <bits/stdc++.h>
using namespace std;
ifstream f("abc2.in");
ofstream g("abc2.out");
vector<int> H[66013];
uint64_t h(string s)
{
uint64_t b4=0;
for(int i=0;i<s.length();i++)
b4=b4*4+s[i]-'a';
return b4;
}
bool found(int _h)
{
int __h=_h%66013;
for(auto i:H[__h])
if(i==_h) return true;
return false;
}
int main()
{
string S;
f>>S;
int L;
string s;
while(f>>s)
{
int _h=h(s);
if(!found(_h))H[_h%66013].push_back(_h);
}
L=s.size();
string seq;
seq.resize(L);
copy(S.begin(),S.begin()+L,seq.begin());
int result=found(h(seq));
for(int i=L;i<S.size();i++)
{
seq.erase(seq.begin());
seq+=S[i];
result+=found(h(seq));
}
g<<result;
return 0;
}