Pagini recente » Cod sursa (job #356464) | Cod sursa (job #382140) | Istoria paginii preoni-2007/clasament/10 | Cod sursa (job #163978) | Cod sursa (job #1061056)
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s[10000005],a[25];
unsigned v[50005];
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
unsigned n,m,i,j,nr=0,st,dr,y=0,mi;
char c;
unsigned x=0,z=1;
c='a';
gets(s);
n=strlen(s);
if(gets(a))
{
m=strlen(a);
nr=1;
for(j=0;j<m;j++)
{
v[nr]=v[nr]*3+a[j]-c;
z=z*3;
}
z=z/3;
while(gets(a))
{
nr++;
for(j=0;j<m;j++)
v[nr]=v[nr]*3+a[j]-c;
}
sort(v+1,v+nr+1);
for(i=0;i<m-1;i++)
x=x*3+s[i]-c;
for(i=m-1;i<n;i++)
{
x=x%z;
x=x*3+s[i]-c;
st=1;
dr=nr;
while(st<=dr)
{
mi=(st+dr)/2;
if(v[mi]==x)
break;
if(v[mi]<x)
st=mi+1;
else
dr=mi-1;
}
if(st<=dr)
y++;
}
printf("%u\n",y);
}
else
printf("0\n");
return 0;
}