Pagini recente » Cod sursa (job #177619) | Cod sursa (job #1260295) | Cod sursa (job #1259079) | Cod sursa (job #2864741) | Cod sursa (job #497620)
Cod sursa(job #497620)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
struct point
{
char x[20];
point *y;
};
char s[10000000],c[50000][20],x[20];
point *a[1000000],*pp;
int l,i,j,n,k,q,m,p,max;
int h(char s[20])
{
int q=0;
long long x=0;;
float c;
for(int i=0;i<strlen(s);i++)x=x*10+((int)s[i]-(int)'a'+1);
q=(int)s[0];
c=(sqrt(5)-1)/2;
return (int)(m*(q*c-(int)(q*c)));
}
void intro(char ss[20])
{
point *p;
p=new point;
int q;
q=h(ss);
if(q>max)max=q;
strcpy(p->x,ss);
p->y=a[q];
a[q]=p;
}
int srch(char ss[20])
{
int q;
q=h(ss);
point *p;
p=a[q];
while(p)
{
if(strcmp(p->x,ss)==0)return 1;
p=p->y;
}
return 0;
}
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
scanf("%s",s);
m=50000/3;
scanf("%s",c[0]);intro(c[0]);
n=1;
p=strlen(c[0]);
while(!feof(stdin))
{
scanf("%s",c[n]);
intro(c[n]);
n++;
}
j=0;
while(strlen(s))
{
strncpy(x,s,p);
if(srch(x))j++;
strcpy(s,s+1);
}
printf("%d\n",j);
return 0;
}