Cod sursa(job #104041)

Utilizator gigi_becaliGigi Becali gigi_becali Data 15 noiembrie 2007 21:22:51
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define maxn 600011
struct nod { int v; nod *l, *r;};

typedef nod * tree;
tree H[maxn], nil;

void init()
{
	nil=new nod;
	nil->v=0x3f3f3f3f;
	nil->l=nil->r=0;
	for(int i=0;i<maxn;++i) H[i]=nil;
}


inline void ins(tree &n, int v)
{
	if(n==nil)
	{
		n=new nod;
		n->v=v;
		n->l=n->r=nil;
		return ;
	}
	
	if(v<n->v) ins(n->l, v);
	if(v>n->v) ins(n->r, v);
}

inline void insert(int v)
{
	ins(H[v%maxn], v);
}

inline int fnd(tree n, int v)
{
	if(n==nil)return 0;
	if(v<n->v) return fnd(n->l, v);
	if(v>n->v) return fnd(n->r, v);
	return 1;
}

inline int find(int v)
{
	return fnd(H[v%maxn],v);
}

int main()
{
	srand(time(0));
	init();
	
	for(int i=1;i<=1000000;++i) insert(rand());
	for(int i=1;i<=1000000;++i) find(rand());
	
	return 0;
}