Pagini recente » Cod sursa (job #1706187) | Cod sursa (job #1387733) | Cod sursa (job #1595758) | Cod sursa (job #297752) | Cod sursa (job #2217179)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int hash_size = 666013;
int N;
vector<int> H[hash_size];
inline int h(int x)
{
return x % hash_size;
}
vector<int>:: iterator find(int x)
{
int y = h(x);
for(auto it = H[y].begin(); it != H[y].end(); it++)
if(*it == x)
return it;
return H[y].end();
}
void insert(int x)
{
int y = h(x);
if(find(x) == H[y].end())
H[y].push_back(x);
}
void erase(int x)
{
int y = h(x);
vector<int>::iterator it = find(x);
if (it != H[y].end())
H[y].erase(it);
}
int main()
{
in >> N;
int op, x;
for(int i = 1; i <= N; i++)
{
in >> op >> x;
if(op == 1)
insert(x);
if(op == 2)
erase(x);
if(op == 3)
out << ((find(x) == H[h(x)].end()) ? 0 : 1) << '\n';
}
return 0;
}