Pagini recente » Cod sursa (job #1557753) | Cod sursa (job #1593431) | Cod sursa (job #2689575) | Cod sursa (job #1426466) | Cod sursa (job #118189)
Cod sursa(job #118189)
#include <stdio.h>
#include <string.h>
#define Nmax 10000001
short uz[Nmax], pi[21];
char T[Nmax], P[21];
long n, m, i, j, rez;
int main()
{
freopen("abc2.in", "r", stdin);
scanf("%s\n", &T); n=strlen(T);
while (!feof(stdin))
{
scanf("%s\n", &P);
for (i=0; i<m; pi[i]=0, i++);
for ( i=0, j=-1, pi[0]=-1, m=strlen(P); i<m; i++, pi[i]=++j ) while (j>=0 && P[i]!=P[j]) j=pi[j];
for (i=0, j=0; i<n; i++)
{
while (j && P[j]!=T[i]) j=pi[j];
if (P[j]==T[i]) j++;
if (j==m) { rez+=1-uz[i-m]; uz[i-m]=1; }
}
}
fclose(stdin);
freopen("abc2.out", "w", stdout);
printf("%ld", rez);
fclose(stdout);
return 0;
}