Pagini recente » Cod sursa (job #376475) | Cod sursa (job #1639645) | Cod sursa (job #1750481) | Cod sursa (job #3154953) | Cod sursa (job #103766)
Cod sursa(job #103766)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SM 10000000
char c[10000005];
char s[50010][21];
char str[21];
long i,j,n,m,nm,dimh,h,nr,li,ls;
int fn_sortare(const void * a,const void *b)
{
char * aa=(char *)a;
char * bb=(char *)b;
return (strcmp(aa,bb));
}
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
fgets(c,SM+1,stdin);
nm=strlen(c)-1;
while (!feof(stdin))
{
i++;
scanf("%s\n",&s[i]);
}
n=i;
h=strlen(s[1]);
qsort(s+1,n,sizeof(s[1]),fn_sortare);
str[0]='0';
for (i=0;i<h-1;i++)
str[i+1]=c[i];
for (i=h-1;i<=nm;i++)
{
strcpy(str,str+1);
str[h-1]=c[i];
while (li<ls)
{
m=(li+ls)/2;
if (strcmp (str,s[m]) == 0)
{
nr++;
break;
}
if (strcmp (str,s[m]) < 0)
ls=m-1;
else li=m+1;
}
}
printf("%ld",nr);
fclose(stdin);
fclose(stdout);
return 0;
}