Pagini recente » Cod sursa (job #3246643) | Cod sursa (job #2321312) | Cod sursa (job #2220376) | Cod sursa (job #776075) | Cod sursa (job #808466)
Cod sursa(job #808466)
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
#define mod 666013
struct nod
{ long long info;
nod *urm;
} *lista[mod];
ifstream in("hashuri.in");
ofstream out("hashuri.out");
int n;
void insert (long long x)
{
long long k=x%mod;
nod *q;
int ok=1;
for ( q=lista[k];q&&ok;q=q->urm)
if (q->info == x)
ok=0;
if (ok)
{
nod *p= new nod;
p ->info=x;
p->urm=lista[k];
lista[k]=p;
}
}
int find (long long x)
{
long k=x%mod;
nod *p;
for (p=lista[k];p;p=p->urm)
if (p->info == x) return 1;
return 0;
}
void remove(long long x)
{ nod *p; nod *q;
long k=x%mod;
p=lista[k];
if (p)
{
if (p->info==x)
{ lista[k]=p->urm;
delete p;
}
else
{
while (p->urm && p->urm->info !=x)
p=p->urm;
if (p->urm)
{
q=p->urm;
p->urm=q->urm;
delete q;
}
}
}
}
int main()
{ int op,i;
long long x;
in>>n;
for (i=0;i<mod; i++) lista[i]=NULL;
while (n--)
{
in>>op>>x;
if (op==1)
{
insert(x);
}
else
if (op==2)
{
remove(x);
}
else
if (op==3)
out<<find(x)<<endl;
}
return 0;
}