Pagini recente » Cod sursa (job #2888824) | Cod sursa (job #1759512) | Cod sursa (job #330976) | Cod sursa (job #103830) | Cod sursa (job #1705444)
# include <iostream>
# include <vector>
# include <cstdio>
using namespace std;
const int HASH_SIZE = 1048575;
class myHash {
vector<int> v[HASH_SIZE];
public:
bool check( int val ) {
int i, h;
h = val & HASH_SIZE;
i = 0;
while ( i < v[h].size() && v[h][i] != val )
i ++;
return ( i < v[h].size() );
}
bool pop( int val ) {
int i, h;
h = val & HASH_SIZE;
i = 0;
while ( i < v[h].size() && v[h][i] != val )
i ++;
if ( i < v[h].size() )
v[h].erase( v[h].begin() + i );
return ( i < v[h].size() );
}
void push( int val ) {
int h = val & HASH_SIZE;
v[h].push_back( val );
}
};
class myHash m;
int main() {
FILE *fin = fopen( "hashuri.in", "r" ), *fout = fopen( "hashuri.out", "w" );
int n, i, t, nr;
fscanf( fin, "%d", &n );
for ( i = 0; i < n; i ++ ) {
fscanf( fin, "%d%d", &t, &nr );
if ( t == 1 )
m.push( nr );
else if ( t == 2 )
m.pop( nr );
else
fprintf( fout, "%d\n", m.check( nr ) );
}
fclose( fin );
fclose( fout );
return 0;
}