Pagini recente » Cod sursa (job #5258) | Cod sursa (job #3257624) | Cod sursa (job #1381672) | Cod sursa (job #1722084) | Cod sursa (job #1765028)
# include <stdio.h>
# include <stdlib.h>
# define Mod 702113
typedef struct _lista
{
int info;
struct _lista *next;
}lista;
lista *Hash[Mod];
void add( int val ){
lista *q = (lista*)malloc(sizeof(lista));
q -> info = val;
q -> next = Hash[val%Mod];
Hash[val%Mod] = q;
}
int find( int val ){
lista *q = Hash[val % Mod];
while( q!=0 && q->info!=val )
q = q -> next;
return ( q != 0 );
}
void erase( int val ){
lista *q, *aux;
q = Hash[val % Mod];
if( q!=0 && q->info == val){
aux = Hash[val % Mod];
Hash[val % Mod] = Hash[val % Mod] -> next;
free( aux);
}
else{
while( q!=0 && q->info != val )
q = q -> next;
if( q!= 0 ){
aux = q;
q = aux -> next;
free(aux);
}
}
}
int main()
{
int n, i, op, val;
FILE *fin, *fout;
fin = fopen( "hashuri.in", "r" );
fout = fopen( "hashuri.out", "w" );
fscanf( fin, "%d", &n );
for( i=1; i<=n; i++ ){
fscanf( fin, "%d%d", &op, &val );
if( op == 1 ){
if( find(val)==0 )
add( val );
}
else if( op == 2 )
erase( val );
else if( op == 3 )
fprintf( fout, "%d\n", find( val ) );
}
fclose( fin );
fclose( fout );
return 0;
}