Pagini recente » Cod sursa (job #1692819) | Cod sursa (job #168478) | Cod sursa (job #366106) | Cod sursa (job #2868947) | Cod sursa (job #255370)
Cod sursa(job #255370)
#include<stdio.h>
#define P 100007
int n;
struct nod
{
int inf;
nod *leg;
};
nod *a[P+1];
void inserare(int x)
{
nod *q,*p;
p=a[x%P];
for(q=p;q!=NULL;q=q->leg)
if(q->inf==x)return;
q=new nod();
q->inf=x;
q->leg=p;
a[x%P]=q;
}
void stergere(int x)
{
nod *q;
int i=x%P;
if(a[i]==NULL)return;
if(a[i]->inf==x)
{
q=a[i];
a[i]=a[i]->leg;
delete(q);
return;
}
nod *p=a[i];
for(q=a[i]->leg;q!=NULL&&q->inf!=x;q=q->leg)
p=q;
if(q!=NULL)
{
p->leg=q->leg;
delete(q);
}
}
int cautare(int x)
{
nod *q,*p;
p=a[x%P];
for(q=p;q!=NULL;q=q->leg)
if(q->inf==x)return 1;
return 0;
}
int main()
{
int i,cod,parametru;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=0;i<=P;i++)
a[i]=NULL;
for(i=1;i<=n;i++){
{
scanf("%d%d",&cod,¶metru);
if(cod==1)inserare(parametru);
else if(cod==2)stergere(parametru);
else printf("%d\n",cautare(parametru));
}
}
return 0;
}