Pagini recente » Cod sursa (job #1104006) | Cod sursa (job #239487)
Cod sursa(job #239487)
# include <cstdio>
# include <vector>
# define FIN "hashuri.in"
# define FOUT "hashuri.out"
# define Mod 666013
struct lista
{
int info;
lista *next;
} *Hash[Mod];
int N, i, val, op;
void add(lista *&p, int val)
{
lista *q;
for (q = p; q && q -> info != val; q = q -> next);
if (q) return;
q = new lista;
q -> info = val;
q -> next = p;
p = q;
}
void find(lista *p, int val)
{
lista *q;
for (q = p; q; q = q -> next)
if (q -> info == val)
{
printf("1\n");
return;
}
printf("0\n");
}
void erase(lista *&p, int val)
{
lista *q, *w;
for (q = p; q && q -> info != val; q = q -> next);
if (q == NULL) return;
w = q;
q = q -> next;
delete w;
}
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d",&N);
for (i = 1; i <= N; ++i)
{
scanf("%d %d",&op,&val);
if (op == 1) add(Hash[val % Mod], val); else
if (op == 2) erase(Hash[val % Mod], val); else
find(Hash[val % Mod], val);
}
return 0;
}