Pagini recente » Borderou de evaluare (job #2296959) | Borderou de evaluare (job #2731359) | Borderou de evaluare (job #72617) | Cod sursa (job #666677) | Cod sursa (job #119480)
Cod sursa(job #119480)
#include <cstdio>
#include <cstdlib>
#include <ctime>
#define maxn (1<<21)
struct nod{ int v; nod*n;};
nod *H[maxn];
int r;
int hight[maxn];
inline void init()
{
srand(time(0));
r=(rand()<<1)|1;
}
inline int hash(int v)
{
return (unsigned) (v*r)>>11;
}
inline void insert(int v)
{
int h=hash(v);
nod *p=new nod;
p->v=v;
p->n=H[h];
H[h]=p;
++hight[h];
}
inline int find(int v)
{
int h=hash(v);
for(nod *p=H[h]; p ; p=p->n)
if(p->v==v)return 1;
return 0;
}
int main()
{
init();
int n=1000000, i;
for(i=1;i<=n;++i) insert(rand());
for(i=1;i<=n;++i) find(rand());
int m=0;
for(i=0;i<maxn;++i)m>?=hight[i];
printf("%d\n", m);
return 0;
}