Pagini recente » Cod sursa (job #738299) | Cod sursa (job #2703310) | Cod sursa (job #964348) | Cod sursa (job #52197) | Cod sursa (job #1844973)
#include<bits/stdc++.h>
using namespace std;
struct nod{
int val;
nod *last, *next;
nod(){
last = next = NULL;
}
};
nod *h[666020];
void add(nod* &a, int val){
if(a == NULL){
a = new nod;
a->val = val;
return;
}
nod* it = a;
nod* b = new nod;
for(; it->next; it = it->next) {
if (it->val == val) return;
}
b->last = it;
it->next = b;
b->val = val;
}
void remove(nod* &a, int val){
if(a == NULL) return;
if (a->val == val)
{
a = a->next;
return;
}
nod* it = a;
for(; it->next; it = it->next)
if (it->val == val) {
nod *u = it->last, *p=it->next;
u->next = p;
p->last = u;
delete it;
return;
}
}
int caut(nod* &a, int val){
nod* it = a;
if(it == NULL) return 0;
if(a->val == val) return 1;
for(; it->next; it = it->next)
if (it->val == val) return 1;
return 0;
}
int main(){
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n, x, y, i;
scanf("%d", &n);
while(n--){
scanf("%d%d", &x, &y);
if(x == 1) add(h[y % 666013], y);
if(x == 2) remove(h[y % 666013], y);
if(x == 3) printf("%d\n",caut( h[y % 666013], y ));
}
return 0;
}