Pagini recente » Cod sursa (job #1902918) | Cod sursa (job #1547351) | Cod sursa (job #2350036) | Cod sursa (job #2895924) | Cod sursa (job #3217255)
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>
#include <unordered_map>
#include <set>
using namespace std;
ifstream fin ("abc2.in");
ofstream fout("abc2.out");
int n,j,sol,i,ch;
long long p;
set <long long> S;
string text,pattern;
int main()
{
fin>>text;
while(fin>>pattern)
{
long long nr=0;
ch=pattern.size();
for(i=0;i<pattern.size();i++)
nr=nr*3+pattern[i]-'a';
S.insert(nr);
}
p=1;
for(i=1;i<ch;i++)
p*=3;
long long nr=0;
for(i=0;i<text.size();i++)
{
if(i>=ch)
nr-=(text[i-ch]-'a')*p;
nr=nr*3+text[i]-'a';
if(i>=ch-1&&S.find(nr)!=S.end())
sol++;
}
fout<<sol;
return 0;
}