Pagini recente » Cod sursa (job #2489451) | Cod sursa (job #1854282) | Cod sursa (job #195976) | Cod sursa (job #2644804) | Cod sursa (job #1573241)
#include <cstdio>
#include <cstring>
int ;
char ;
struct trie
{
int cuvinte, prefixe;
trie *lit[26];
trie()
{
cuvinte=prefixe=phi=0;
memset(lit, 0, sizeof(lit));
}
} *andr;
char s[l][23];
void adaug_cuv()
{
trie *q = andr;
andr->prefixe ++;
for(int i=0;i<n;i++)
{
if(q->lit[s[l][i]]==0) q->lit[s[l][i]]=new trie;
q=q->lit[s[l][i]];
q->prefixe++;
}
q->cuvinte++;
return;
}
int main()
{
freopen("ahocorasick.in","r",stdin);
freopen("ahocorasick.out","w",stdout);
gets(s+1);
andr = new trie;
scanf("%d",&nrc);
for(l=1;l<=nrc;l++)
{
gets(s[l]);
n=strlen(s[l]);
for (i=0;i<n;i++)
s[l][i]-='a';
adaug_cuv();
}