Pagini recente » Cod sursa (job #3257550) | Cod sursa (job #346028) | Cod sursa (job #1752940) | Cod sursa (job #2045549) | Cod sursa (job #104041)
Cod sursa(job #104041)
#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;
}