Pagini recente » Cod sursa (job #2186845) | Cod sursa (job #1492949) | Cod sursa (job #2493249) | Cod sursa (job #2478869) | Cod sursa (job #2107519)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int MOD=99989;
struct nod
{
int info;
nod *next;
} *h[MOD-1];
int verif (int x)
{
nod *c;
c=new(nod);
if(h[x%MOD])
{
c=h[x%MOD];
while(c->info!=x && c->next!=0)
c=c->next;
if(c->info==x)
return 1;
}
return 0;
}
void sterge (int x)
{
nod *c;
c=new(nod);
if(h[x%MOD]!=0)
{
c=h[x%MOD];
nod *d;
d=new(nod);
d=c;
while(c->info!=x && c->next!=0)
d=c,c=c->next;
if(c->info==x)
{
if(c->next==NULL)
{
if(d==c)
c=0, h[x%MOD]=0;
else
d->next=NULL;
}
else
c->next=c->next->next;
}
}
}
void adaug(int x)
{
if(h[x%MOD]==0)
{
nod *c;
c=new(nod);
c->info=x;
c->next=0;
h[x%MOD]=c;
}
else
{
nod *c;
c=new(nod);
c=h[x%MOD];
while(c->next!=0)
c=c->next;
nod *d;
d=new(nod);
d->info=x;
d->next=0;
c->next=d;
}
}
int main()
{
int i, op, x, n;
f>>n;
for(i=1;i<=n;++i)
{
f>>op>>x;
if(op==1)
if(!verif(x))
{
adaug(x);
}
if(op==2)
sterge(x);
if(op==3)
if(verif(x))
g<<1<<'\n';
else
g<<0<<'\n';
}
/*for (i=0;i<MOD;++i)
if(h[i])
cout<<h[i]->info<<endl;*/
f.close();
g.close();
}