Cod sursa(job #1037712)

Utilizator myshuSpatariu Mihai-Constantin myshu Data 20 noiembrie 2013 17:50:32
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include<fstream>
using namespace std;
struct nod{int info;
			nod *urm;};
nod *v[447723],*p;
int afis(int y)
{for(p=v[y%447722];p;p=p->urm)
if(p->info==y)return 1;
return 0;
}
void add(int y)
{int k=0;
for(p=v[y%447722];p;p=p->urm)
if(p->info==y){k=1;break;}
if(k==0){if(v[y%447722]->info==-1)v[y%447722]->info=y;
else {p=new nod;
p->info=y;
p->urm=v[y%447722]->urm;
v[y%447722]->urm=p;}}
}
void del(int y)
{if(v[y%447722]->info==-1);
else if(v[y%447722]->info==y&&v[y%447722]->urm!=NULL)v[y%447722]=v[y%447722]->urm;
else if(v[y%447722]->info==y){v[y%447722]->info=-1;v[y%447722]->urm=NULL;}
else for(p=v[y%447722];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<=447722;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;
}