Pagini recente » Cod sursa (job #1547970) | Cod sursa (job #2935550) | Cod sursa (job #1576322) | Cod sursa (job #2900313) | Cod sursa (job #99692)
Cod sursa(job #99692)
#include <cstdio>
#include <cstring>
#include <set>
using namespace std;
#define LMAX 10000005
int L; char text[LMAX];
int l;
set <unsigned int> S;
int cnt=0;
void read_data()
{
char secv[25];
fgets(text,LMAX,stdin);
L=strlen(text)-1;
fgets(secv,25,stdin);
l=strlen(secv)-1;
do
{
unsigned int nr=0;
for(int i=0; i<l; ++i)
nr=nr*3+(secv[i]-'a');
S.insert(nr);
}
while(fgets(secv,25,stdin));
}
void solve()
{
unsigned int nr=0, p3=1;
for(int i=0; i<l-1; ++i)
{
nr=nr*3+(text[i]-'a');
p3*=3;
}
for(int i=l-1; i<L; ++i)
{
nr=(nr%p3)*3+(text[i]-'a');
cnt+=(S.find(nr)!=S.end());
}
}
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
read_data();
solve();
printf("%d\n",cnt);
return 0;
}