Pagini recente » Cod sursa (job #188718) | Cod sursa (job #2561133) | Cod sursa (job #914157) | Cod sursa (job #2815469) | Cod sursa (job #1075938)
#include <stdio.h>
#include <stdlib.h>
#define m 666013
typedef struct nod nod;
struct nod{
int info;
nod *urm;
};
int x,n,i,t,ok;
nod *has[m],*q,*aux1,*aux2;
int main()
{
FILE *f,*g;
f=fopen("hashuri.in","r");
g=fopen("hashuri.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d",&t);
fscanf(f,"%d",&x);
ok=0;
switch(t){
case 1:{
for(aux1=has[x%m];aux1;aux1=aux1->urm){
if(aux1->info==x)ok=1;
}
if(ok==0){
q=(nod*)malloc(sizeof(nod));
q->info=x;
q->urm=has[x%m];
has[x%m]=q;
}
}break;
case 2:{
aux1=has[x%m];
aux2=aux1;
if(aux1){
if(aux1->info==x){
aux2=has[x%m];
has[x%m]=has[x%m]->urm;
free(aux2);
}
else{
while(aux2->urm && aux2->urm->info!=x)
aux2=aux2->urm;
if (aux2->urm){
if(aux2->urm->info==x){
q=aux2->urm;
aux2->urm=aux2->urm->urm;
free(q);
}
}
}
}
}break;
case 3:{
for(aux1=has[x%m];aux1;aux1=aux1->urm){
if(aux1->info==x)ok=1;
}
if(ok)
fprintf(g,"%d\n",1);
else fprintf(g,"%d\n",0);
}break;
default: printf("Eroare");break;
}
}
fclose(f);
fclose(g);
return 0;
}