Pagini recente » Cod sursa (job #2293243) | Cod sursa (job #55587) | Cod sursa (job #2105360) | Cod sursa (job #42597) | Cod sursa (job #3217947)
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
char x[10000005],y[21];
unordered_map <long long,int> mp;
int rasp,l;
int main()
{
fin>>x;
while(fin>>y)
{
long long nr=0;
l=0;
for(int j=0;y[j]!=0;j++)
{
l++;
nr=nr*3+(y[j]-'a');
}
mp[nr]=1;
}
long long p=1;
for(int j=2;j<=l;j++)
p=p*3;
long long nr=0;
for(int i=0;x[i]!=0;i++)
{
if(i+1<l)
{
nr=nr*3+x[i]-'a';
}
else if(i+1==l)
{
nr=nr*3+x[i]-'a';
if(mp.find(nr)!=mp.end())
{
rasp++;
}
}
else
{
nr=nr-(x[i-l]-'a')*p;
nr=nr*3+x[i]-'a';
if(mp.find(nr)!=mp.end())
{
rasp++;
}
}
}
fout<<rasp;
return 0;
}