Pagini recente » Cod sursa (job #28506) | Cod sursa (job #2868598) | Cod sursa (job #383013) | Cod sursa (job #2853342) | Cod sursa (job #734812)
Cod sursa(job #734812)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
#define SIZE 666013
vector<int> hash[SIZE];
inline bool in_hash(int what)
{
int hs = what % SIZE;
int sz = hash[hs].size();
for (int i = 0; i < sz; i++) {
if (hash[hs][i] == what)
return true;
}
return false;
}
inline void insert(int what)
{
int hs = what % SIZE;
if (!in_hash(what))
hash[hs].push_back(what);
}
inline void del(int what)
{
int hs = what % SIZE;
int sz = hash[hs].size();
for (int i = 0; i < sz; i++) {
if (hash[hs][i] == what) {
hash[hs].erase(hash[hs].begin() + i);
return;
}
}
}
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int N, Type, X;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d %d", &Type, &X);
switch (Type) {
case 1:
insert(X);
break;
case 2:
del(X);
break;
case 3:
printf("%d\n", in_hash(X) == true ? 1 : 0);
//cout << in_hash(X) << endl;
break;
}
}
return 0;
}