Pagini recente » Cod sursa (job #2103914) | Cod sursa (job #1060844) | Cod sursa (job #473370) | Cod sursa (job #1946181) | Cod sursa (job #2082046)
#include <bits/stdc++.h>
#define val(x) x-'A';
using namespace std;
ifstream in("dictree.in");
ofstream out("dictree.out");
struct trie
{
bool ultim;
bitset < 60 > ok;
trie *fii[60];
} *radacina;
long long nr_nod=1,n;
char s[25002];
void initializeaza ()
{
radacina=new trie;
radacina->ok.reset();
radacina->ultim=false;
}
void insereaza (char s[])
{
int x=strlen(s);
trie *nod_curent=radacina;
for(int i=0; i<x; i++)
{
int litera=val(s[i]);
if(nod_curent->ok.test(litera)==false)
{
nr_nod++;
nod_curent->ok.set(litera);
nod_curent->fii[litera]=new trie;
}
nod_curent=nod_curent->fii[litera];
}
}
int main()
{
initializeaza();
in>>n;
in.get();
for(int i=1; i<=n; i++)
{
in.getline(s,25002);
insereaza(s);
}
out<<nr_nod;
return 0;
}