Pagini recente » Cod sursa (job #1082269) | Cod sursa (job #1284998) | Cod sursa (job #305829) | Cod sursa (job #876686) | Cod sursa (job #1144260)
#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int MOD= 666013;
vector <int> v[ MOD+1 ];
inline int key( int n ) {
return n % MOD;
}
inline void adaos( int nr ) {
int k= key( nr );
int gasit= 0;
for( int i= 0; i<(int)v[k].size(); i++ ) {
if( nr == v[k][i] ) gasit= 1;
}
if( gasit == 0 ) v[k].push_back( nr );
}
inline void DeLeTe( int nr ) {
int k= key( nr );
int gasit= 0;
for( int i= 0; i<(int)v[k].size() && gasit==0; i++ ) {
if( nr == v[k][i] ) {
gasit= 1;
swap( v[k][i] , v[k][ v[k].size()-1 ] );
v[k].pop_back();
}
}
}
inline void Afis( int nr ) {
int k= key( nr );
int gasit= 0;
for( int i= 0; i<(int)v[k].size() && gasit==0; i++ ) {
if( nr == v[k][i] ) {
gasit= 1;
}
}
out << gasit << '\n';
}
int main()
{
int N;
in >> N;
for( int i= 1; i<=N; i++ ) {
int op;
in >> op;
if( op == 1 ) {
int nr;
in >> nr;
adaos( nr );
}
else if( op == 2 ) {
int nr;
in >> nr;
DeLeTe( nr );
}
else {
int nr;
in >> nr;
Afis( nr );
}
}
return 0;
}