Pagini recente » Cod sursa (job #1623673) | Cod sursa (job #202171) | Cod sursa (job #2377798) | Cod sursa (job #1285341) | Cod sursa (job #104467)
Cod sursa(job #104467)
#include <stdio.h>
#include <string.h>
#define Nmax 50002
#define Cmax 10000002
#define cmax 22
char s[Cmax],cuv[cmax];
int lgs,lgc,nr,t[1500000][3];
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
s[0]=0;
fgets(s,Cmax,stdin);
lgs=strlen(s)-1;
for (int i=0;i<lgs;i++) s[i]-='a';
memset(t,0,sizeof(t));
nr=1;
while (1)
{
cuv[0]=0;
fgets(cuv,cmax,stdin);
if (!cuv[0]) break;
lgc=strlen(cuv)-1;
int poz=1;
for (int i=0;i<lgc;i++)
{
cuv[i]-='a';
if (t[poz][cuv[i]]) poz=t[poz][cuv[i]];
else {
t[poz][cuv[i]]=++nr;
poz=nr;
}
}
}
int sol=0,poz,k,l;
for (int i=0;i+lgc<=lgs;i++)
{
poz=1,k=i,l=0;
while (poz!=0 && l<lgc)
{
poz=t[poz][s[k]];
l++, k++;
}
if (poz!=0) sol++;
}
printf("%d\n",sol);
return 0;
}