Pagini recente » Cod sursa (job #2301132) | Cod sursa (job #79750) | Cod sursa (job #1315537)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
unsigned long n,m=573571,x;
struct nod {unsigned long info;
nod *next;} *p, *h[573575],*q;
void insereaza()
{
unsigned long poz=x%m;
if(h[poz]==NULL)
{
p=new nod;
p->info=x;
p->next=NULL;
h[poz]=p;
}
else
{
p=h[poz];
while(p->next!=NULL && p->info!=x)
p=p->next;
if(p->info!=x)
{
q=new nod;
q->info=x;
q->next=NULL;
p->next=q;
}
}
}
void sterge()
{
unsigned long poz=x%m;
p=h[poz];
if(p->info==x)
{
p=p->next;
h[poz]=p;
}
else
{
q=p;
p=p->next;
while(p->next!=NULL && p->info!=x)
{
q=p;
p=p->next;
}
if(p->info==x)
q->next=p->next;
}
}
bool query()
{
unsigned long poz=x%m;
p=h[poz];
while(p!=NULL)
{
if(p->info==x)
return 1;
p=p->next;
}
return 0;
}
int main()
{
f>>n;
unsigned long i;
int op;
for(i=0;i<=m-1;i++)
h[i]=NULL;
for(i=1;i<=n;i++)
{
f>>op>>x;
if(op==1)
insereaza();
if(op==2)
sterge();
if(op==3)
g<<query()<<endl;
}
return 0;
}