Pagini recente » Cod sursa (job #2792016) | Cod sursa (job #1069192) | Cod sursa (job #1980853) | Cod sursa (job #492687) | Cod sursa (job #385263)
Cod sursa(job #385263)
#include <stdio.h>
#include <string.h>
#define MODULO 666012
int n;
struct nod
{
int info;
nod *next;
};
nod *v[MODULO];
int cauta(int nr)
{
int h, ex = 0;
h = nr % MODULO;
nod *p;
for ( p = v[h]; p && !ex; p = p-> next)
if ( p -> info == nr)
ex = 1;
return ex;
}
void adaug(int nr)
{
int h;
nod *aux;
h = nr % MODULO;
aux = new nod;
aux -> info = nr;
aux -> next = v[h];
v[h] = aux;
}
void sterge(int nr)
{
int h;
nod *p;
h = nr % MODULO;
for( p = v[h]; p; p = p -> next)
if( p -> info == nr)
break;
if( !p)
return;
p -> info = v[h] -> info;
p = v[h];
v[h] = v[h] -> next;
delete p;
}
int main()
{
int i, op, nr;
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
// memset(v, 0, sizeof(v));
scanf("%d", &n);
for ( i = 1; i <= n; i++)
{
scanf("%d %d", &op, &nr);
if ( op == 1)
if (!cauta(nr))
adaug(nr);
if ( op == 2)
sterge(nr);
if ( op == 3)
printf("%d\n", cauta(nr));
}
return 0;
}