Pagini recente » Cod sursa (job #1731022) | Cod sursa (job #1332759) | Cod sursa (job #324996) | Cod sursa (job #1172422) | Cod sursa (job #180044)
Cod sursa(job #180044)
#include<cstdio>
#include<cstring>
#include<map>
std::map<int,bool>hash;
unsigned int x,y,i,n,nr,l;
char s2[100],s[10000001];
std::map<unsigned int,bool>::iterator end;
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
gets(s);
gets(s2);
l=strlen(s2);
goto calc;
while(!feof(stdin))
{
gets(s2);
calc:
x=0;
for(i=0;i<l;i++)
x=x*3+s2[i]-'a';
hash[x]=1;
}
end=hash.end();
n=strlen(s);
y=1;x=0;
for(i=0;i<l;i++)
{
s[i]-='a';
x=x*3+s[i];
y*=3;
}
if(hash.find(x)!=end) nr++;
for(;i<n;i++)
{
s[i]-='a';
x=x*3+s[i]-y*s[i-l];
if(hash.find(x)!=end) nr++;
}
printf("%d\n",nr);
fclose(stdout);
return 0;
}