Pagini recente » Cod sursa (job #1339224) | Cod sursa (job #592565) | Cod sursa (job #1121832) | Cod sursa (job #2754717) | Cod sursa (job #743012)
Cod sursa(job #743012)
#include<cstdio>
#define MOD 666013
typedef struct lnod{
int info;
struct lnod *next;
}*Nod;
Nod a[MOD+5];
void add(Nod &a,int x){
Nod p;
p = new lnod;
p->info = x;
p->next = a;
a = p;
}
bool find(int q){
int x=q%MOD;
Nod p;
for(p=a[q%MOD];p;p=p->next)
if(p->info==q)return 1;
return 0;
}
void del(int q){
int x=q%MOD;
Nod p=a[x],r;
while(p)
if(p->info==q)
if(p==a[x])
if(p->next==NULL)
{ delete p; a[x]=NULL; return ;}
else { a[x]=p->next; delete p; return ; }
else
if(p==a[x]){
a[x] = p->next;
delete p;
return ;
}
else
{
r->next = p->next;
r = r->next;
delete p;
return ;
}
else
{ r=p; p=p->next; }
}
int main(void){
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int n,i,cod,x;
bool bo;
scanf("%d",&n);
for(i=1;i<=n%MOD;++i)a[i]=NULL;
for(i=1;i<=n;++i){
scanf("%d%d",&cod,&x);
if(cod==1 || cod==2){
bo=find(x);
if(!bo && cod==1)add(a[x%MOD],x);
if(bo && cod==2)del(x);
}
else printf("%d\n",find(x));
}
return 0;
}