Pagini recente » Borderou de evaluare (job #1620281) | Borderou de evaluare (job #1799061) | Borderou de evaluare (job #2570703) | Cod sursa (job #635177) | Cod sursa (job #250185)
Cod sursa(job #250185)
#include<stdio.h>
struct nod{
int val;
nod *adr;
};
FILE *f1,*f2;
long a,b,c,i,j,n,m;
nod *v[125000003],*p,*pp,*aux,*s;
int main(){
f1=fopen("hashuri.in","r");
f2=fopen("hashuri.out","w");
fscanf(f1,"%ld",&n);
for(i=1;i<=n;i++){
fscanf(f1,"%ld%ld",&a,&b);
if(a==1){
p=v[b%125000003];
if(p==NULL){
v[b%125000003]=new nod;
v[b%125000003]->val=b;
v[b%125000003]->adr=NULL;
}
else{
c=1;
while(c&&p->adr!=NULL){
p=p->adr;
if(p->val==b){
c=0;
}
}
if(c){
aux=new nod;
aux->val=b;
p->adr=aux;
}
}
}
if(a==2){
p=v[b%125000003];
c=1;
if(p!=NULL){
pp=p;
p=p->adr;
if(p!=NULL){
if(p->val==b){
c=0;
}
}
else{
v[b%125000003]->val=-1;
c=0;
}
if(c){
while(c&&p->adr!=NULL){
if(p->val==b){
c=0;
}
p=p->adr;
}
}
if(c){
if(p!=v[b%125000003]){
s=pp->adr;
pp->adr=p->adr;
delete s;
}
else{
s=v[b%125000003]->adr;
v[b%125000003]=s;
delete s;
}
}
}
}
if(a==3){
p=v[b%125000003];
c=1;
if(p!=NULL){
while(c&&p->adr!=NULL){
p=p->adr;
if(p!=NULL){
if(p->val==b){
c=0;
}
}
}
if(c&&p->val!=-1){
fprintf(f2,"1\n");
}
else{
fprintf(f2,"0\n");
}
}
else{
fprintf(f2,"0\n");
}
}
}
return 0;
}