Pagini recente » pentru_fete_valcea | Cod sursa (job #1126740) | Cod sursa (job #973974) | Cod sursa (job #2780464) | Cod sursa (job #251307)
Cod sursa(job #251307)
#include<stdio.h>
struct nod{
int val;
nod *adr;
};
FILE *f1,*f2;
long a,b,c,d,i,j,n,m;
nod *v[666015],*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%666013];
if(p==NULL){
v[b%666013]=new nod;
v[b%666013]->val=b;
v[b%666013]->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;
aux->adr=NULL;
p->adr=aux;
}
}
}
if(a==2){
p=v[b%666013];
if(p->val==b){
if(p->adr!=NULL){
s=v[b%666013]->adr;
v[b%666013]->val=s->val;
v[b%666013]->adr=v[b%666013]->adr->adr;
delete s;
}
else{
p->val=-1;
p->adr=NULL;
}
}
if(p->adr!=NULL){
pp=p->adr;
c=1;
d=1;
while(c&&d){
if(pp->val==b){
c=0;
}
else{
p=pp;
if(pp->adr!=NULL){
pp=pp->adr;
}
else{
d=0;
}
}
}
if(d&&!c){
s=pp;
p->adr=pp->adr;
delete s;
}
}
/*
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%666013];
c=1;
if(p!=NULL){
while(c&&p->adr!=NULL){
p=p->adr;
if(p!=NULL){
if(p->val==b){
c=0;
}
}
}
if((p->val==b)||(c==0&&p->val!=-1)){
fprintf(f2,"1\n");
}
else{
fprintf(f2,"0\n");
}
}
else{
fprintf(f2,"0\n");
}
}
}
return 0;
}