Pagini recente » Cod sursa (job #487362) | Cod sursa (job #895181) | Cod sursa (job #1337499) | Cod sursa (job #325761) | Cod sursa (job #430413)
Cod sursa(job #430413)
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<cstdio>
using namespace std;
ofstream fout("hashuri.out");
#define maxh 666013
struct nod{
long long inf;
nod *leg;
};
nod *H[maxh];
long long n,op,x;
void insereaza(int v)
{nod *p;
int h=v%maxh;
for(p=H[h];p;p=p->leg)
if(p->inf==v)
return;
p=new nod;
p->leg=H[h];
p->inf=v;
H[h]=p;
}
void sterge(int v)
{
nod *p,*ante;
int h=v%maxh;
p=H[h];
if(p!=NULL)
{if(p->inf==v)
{
H[h]=p->leg;
return;}
for(p=H[h]->leg,ante=H[h];p;p=p->leg,ante=ante->leg)
if(p!=NULL)
if(p->inf==v)
{ante->leg=p->leg;
return;
}
}
}
void exista(int v)
{
nod *p;
int h=v%maxh;
for(p=H[h];p;p=p->leg)
if(p->inf==v)
{fout<<"1"<<"\n";
return;}
fout<<"0"<<"\n";
}
void cit()
{int i;
ifstream fin("hashuri.in");
fin>>n;
for(i=1;i<=n;i++)
{fin>>op>>x;
if(op==1)
insereaza(x);
if(op==2)
sterge(x);
if(op==3)
exista(x);
}
fin.close();
}
int main()
{
cit();
fout<<'\n';
fout.close();
return 0;
}