Pagini recente » Cod sursa (job #3256186) | Cod sursa (job #1231357) | Cod sursa (job #3279213) | Cod sursa (job #2983736) | Cod sursa (job #734796)
Cod sursa(job #734796)
#include <fstream>
#include <vector>
using namespace std;
#define in "hashuri.in"
#define out "hashuri.out"
#define NMAX 1000005
#define MOD 666013
int N;
vector<int> H[MOD];
inline vector<int>::iterator find_value( int x )
{
int list = x % MOD;
vector<int>::iterator it;
for ( it = H[list].begin(); it != H[list].end(); ++it )
if ( *it == x ) return it;
return H[list].end();
}
inline void erase_value( int x )
{
int list = x % MOD;
vector<int>::iterator it = find_value(x);
if ( it != H[list].end() )
H[list].erase(it);
}
inline void insert_value( int x )
{
int list = x % MOD;
if ( find_value(x) == H[list].end() )
H[list].push_back( x );
}
int main(void)
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
int op, x;
for ( scanf ( "%d", &N ); N; --N )
{
scanf ( "%d %d", &op, &x );
if ( op == 1 )
{
insert_value(x);
continue;
}
if ( op == 2 )
{
erase_value(x);
continue;
}
printf ( "%d\n", find_value(x) != H[ x % MOD ].end() );
}
return 0;
}