Pagini recente » Cod sursa (job #2401665) | Cod sursa (job #2854674) | Cod sursa (job #879484) | Cod sursa (job #2881936) | Cod sursa (job #646509)
Cod sursa(job #646509)
#include<cstdio>
#include<list>
#include<algorithm>
#define HASH_NUMBER 73
using namespace std;
void addToHash( list< int > table[], int size, int value ){
int index = value % size;
table[ index ].push_back( value );
}
void removeFromHash( list< int > table[], int size, int value ){
int index = value % size;
list< int >::iterator it = find( table[index].begin(), table[index].end(), value );
if( it != table[index].end() ){
table[index].erase( it );
}
}
int inHash( list< int > table[], int size, int value ){
int index = value % size;
list< int >::iterator it;
for( it=table[index].begin(); it != table[index].end(); ++it ){
if( *it == value ){
return 1;
}
}
return 0;
}
int main(){
freopen( "hashuri.in", "r", stdin );
freopen( "hashuri.out", "w", stdout );
int n;
list< int > table[ HASH_NUMBER ];
//setupHash( table );
scanf( "%d", &n );
for( int i=0; i<n; ++i ){
int opt, val;
scanf( "%d %d", &opt, &val );
switch( opt ){
case 1:
addToHash( table, HASH_NUMBER, val );
break;
case 2:
removeFromHash( table, HASH_NUMBER, val );
break;
case 3:
printf( "%d\n", inHash( table, HASH_NUMBER, val ) );
break;
default:
fprintf( stderr, " [ERROR] Unknown case: %d\n", opt );
}
}
return 0;
}