Pagini recente » Cod sursa (job #3201281) | Cod sursa (job #2868441) | Cod sursa (job #3200992) | Cod sursa (job #579694) | Cod sursa (job #238819)
Cod sursa(job #238819)
# include <cstdio>
# include <vector>
using namespace std;
# define FIN "hashuri.in"
# define FOUT "hashuri.out"
# define pb push_back
# define Mod 666013
struct lista
{
int info;
lista *next;
} *Hash[Mod + 5];
int N, i, val, op;
void add(lista *&p, int val)
{
lista *q;
q = p;
while (q != NULL)
{
if (q -> info == val) return;
q = q -> next;
}
q = p;
if (p == NULL) p = new lista;
p -> info = val;
p -> next = q;
}
void find(lista *p, int val)
{
lista *q;
q = p;
while (q != NULL)
{
if (q -> info == val)
{
printf("1\n");
return;
}
q = q -> next;
}
printf("0\n");
}
void erase(lista *&p, int val)
{
lista *q, *w;
q = p;
while (q != NULL && q -> info != val)
q = q -> next;
if (q == NULL) return;
if (q == p)
{
w = p;
p = p -> next;
delete w;
}
else
{
w = q;
q = w -> 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);
if (op == 2) erase(Hash[val % Mod], val);
if (op == 3) find(Hash[val % Mod], val);
}
return 0;
}