Pagini recente » Monitorul de evaluare | Cod sursa (job #1056937) | Statistici Nita Andrei (andreinita2003) | Cod sursa (job #607539) | Cod sursa (job #1061079)
#include<stdio.h>
#include<string.h>
#include<vector>
#include<algorithm>
using namespace std;
char s[10000005],a[25];
vector<unsigned> v[66016];
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
unsigned n,m,i,j,nr,w,y=0,p;
char c;
unsigned x=0,z=1;
p=66013;
c='a';
gets(s);
n=strlen(s);
if(gets(a))
{
m=strlen(a);
nr=0;
for(j=0;j<m;j++)
nr=nr*3+a[j]-c;
i=nr%p;
w=v[i].size();
for(j=0;j<w;j++)
if(v[i][j]==nr)
break;
if(j==w)
v[i].push_back(nr);
while(gets(a))
{
nr=0;
for(j=0;j<m;j++)
nr=nr*3+a[j]-c;
i=nr%p;
w=v[i].size();
for(j=0;j<w;j++)
if(v[i][j]==nr)
break;
if(j==w)
v[i].push_back(nr);
}
for(i=0;i<m-1;i++)
{
x=x*3+s[i]-c;
z=z*3;
}
for(i=m-1;i<n;i++)
{
x=x%z;
x=x*3+s[i]-c;
nr=x%p;w=v[nr].size();
for(j=0;j<w;j++)
if(v[nr][j]==x)
break;
if(j<w)
y++;
}
printf("%u\n",y);
}
else
printf("0\n");
return 0;
}