Cod sursa(job #67432)

Utilizator gigi_becaliGigi Becali gigi_becali Data 24 iunie 2007 18:57:05
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
using namespace std;
#include <cstdio>
#include <string>
#include <ctime>
#include <cstdlib>
struct nod { bool end; nod *next[10];};
typedef nod* trie;
trie T;

void init()
{
  T=new nod;
  memset(T->next, 0, sizeof(T->next));
}


void insert(trie T, int v)
{
  if(!v) return;
  int r=v%10;
  if(!T->next[r])
    {
      T->next[r]=new nod;
      memset(T->next[r], 0, sizeof(T->next));
      T->end=0;
    }
  if(!(v/10))
    {
      T->end=1;
      return;
    }
  insert(T->next[r], v/10);
}

int find(trie T, int v)
{
  int r=v%10;
  if(!(v/10))
    if(T->end && T->next[r])return 1;
    else return 0;
  if(!T->next[r]) return 0;
  return find(T->next[r], v/10);
}

int main()
{
  srand(time(0));
  init();
  insert(T, 13);
  insert(T, 8);
  insert(T, 23);
  insert(T, 5);
  //  printf("%d\n", find(T, 8));
  // printf("%d\n", find(T, 9));
  int  n=100000;
  for(int i=1;i<=n;++i) insert(T, rand()-1);
  //printf("%d\n", sizeof(T));
 return 0;
}