Pagini recente » Cod sursa (job #3277157) | Cod sursa (job #69175) | Cod sursa (job #1200433) | Cod sursa (job #1186994) | Cod sursa (job #1344796)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <iostream>
#define MOD 660013
#define get_max(a,b) ((a)>(b)?(a):(b))
#define get_min(a,b) ((a)<(b)?(a):(b))
using namespace std;
ifstream in ( "hashuri.in" );
ofstream out ( "hashuri.out" );
vector < int > Hash[MOD] ;
int N , key , type , elem ;
vector < int > ::iterator Find ( int X ){
for ( vector < int > ::iterator it = Hash[key].begin() ; it != Hash[key].end() ; ++it )
if ( *it == X )
return it;
return Hash[key].end();
}
void Add ( int X ){
if ( Find(X) == Hash[key].end() )
Hash[key].push_back(X);
}
void Delete ( int X ){
vector < int > ::iterator it = Find(X);
if ( it != Hash[key].end() )
Hash[key].erase(it);
}
int main ( void ){
int i , j ;
in >> N ;
for ( i = 1 ; i <= N ; ++i )
{
in >> type >> elem ;
key = elem % MOD;
if ( type == 1 ) Add ( elem ) ;
if ( type == 2 ) Delete ( elem ) ;
if ( type == 3 ) out << ( Find(elem) != Hash[key].end() ) << "\n" ;
}
return 0 ;
}