Pagini recente » Cod sursa (job #88019) | Cod sursa (job #1551529) | Cod sursa (job #1974870) | Cod sursa (job #1720604) | Cod sursa (job #604660)
Cod sursa(job #604660)
#include<fstream.h>
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int NMAX=666013;
struct hash
{ int val;
hash *next;
/*hash()
{ val=0;
next=0;
}*/
};
hash *h[NMAX+2]/*=new hash[NMAX+2]*/;
hash *p;
int n,op,x;
void add()
{ int nr=x%NMAX;
p=h[nr];
while(p) { if(p->val==x) return; p=p->next;}
p=new hash;
p->next=h[nr];
p->val=x;
h[nr]=p;
}
void del()
{ int nr=x%NMAX;
p=h[nr];
if(!p) return;
if(p->val==x) { h[nr]=p->next; delete p; return;}
while(p->next
&& p->next->val!=x) p=p->next;
if(!p->next) return;
hash *q=p->next;
p->next=q->next;
delete q;
}
int que()
{ int nr=x%NMAX;
p=h[nr];
while(p)
{ if(p->val==x) return 1;
p=p->next;
}
return 0;
}
int main()
{ f>>n;
while(n)
{ f>>op>>x;
switch(op)
{ case 1: add(); break;
case 2: del(); break;
case 3: g<<que()<<'\n'; break;
}
--n;
}
f.close(); g.close();
return 0;
}