Pagini recente » Cod sursa (job #2368158) | Cod sursa (job #587741) | Cod sursa (job #1759519) | Cod sursa (job #1899703) | Cod sursa (job #711847)
Cod sursa(job #711847)
#include<fstream>
using namespace std;
struct nod{int info;
nod *urm;};
nod *v[44723],*p;
//p=new nod;
int afis(int y)
{
for(p=v[y%44722];p;p=p->urm)
if(p->info==y)return 1;
return 0;
}
void add(int y)
{ int k=0;
for(p=v[y%44722];p;p=p->urm)
if(p->info==y){k=1;break;}
if(k==0){if(v[y%44722]->info==-1)v[y%44722]->info=y;
else {p->info=y;p->urm=v[y%44722]->urm;v[y%44722]->urm=p;}}
}
void del(int y)
{
if(v[y%44722]->info==-1);
else if(v[y%44722]->info==y&&v[y%44722]->urm!=NULL)v[y%44722]=v[y%44722]->urm;
else if(v[y%44722]->info==y){v[y%44722]->info=-1;v[y%44722]->urm=NULL;}
else for(p=v[y%44722];p;p=p->urm)
if(p->urm==NULL)break;
else if(p->urm->info==y&&p->urm->urm!=NULL){p->urm=p->urm->urm;break;}
else if(p->urm->info==y){p->urm=NULL;break;}
}
int main()
{
ifstream fcin("hashuri.in");
ofstream fcout("hashuri.out");
int n,i,x,y;
fcin>>n;
for(i=0;i<=44722;i++)
{v[i]=new nod;v[i]->info=-1;v[i]->urm=NULL;}
for(i=1;i<=n;i++)
{
fcin>>x>>y;
if(x==3)fcout<<afis(y)<<'\n';
else if(x==2)del(y);
else add(y);
}
return 0;
}