Pagini recente » Cod sursa (job #1891973) | Cod sursa (job #1940371) | Cod sursa (job #2291100) | Cod sursa (job #1459081) | Cod sursa (job #679310)
Cod sursa(job #679310)
#include <cstdio>
#define file_in "hashuri.in"
#define file_out "hashuri.out"
#define mod 666013
struct nod{
int val;
nod * urm;
};
nod * H[mod+10];
int Tip,X,Q;
void inserare(nod *& v, int val){
nod * c=new nod;
c->val=val;
c->urm=v;
v=c;
}
void stergere(nod *& v, int val){
nod * c,* a;
if (v->val==val){
a=v;
v=v->urm;
delete a;
}
else{
c=v;
while (c->urm->val!=val) c=c->urm;
a=c->urm;
c->urm=a->urm;
delete a;
}
}
int cautare(nod * v, int val){
nod * c=v;
while(c){
if (c->val==val) return 1;
c=c->urm;
}
return 0;
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d", &Q);
while(Q--){
scanf("%d %d", &Tip, &X);
if (Tip==1){
if (!cautare(H[X%mod],X))
inserare(H[X%mod],X);
}
else
if (Tip==2){
if (cautare(H[X%mod],X))
stergere(H[X%mod],X);
}
else{
printf("%d\n", cautare(H[X%mod],X));
}
}
return 0;
}