Pagini recente » Cod sursa (job #86386) | Cod sursa (job #1440435) | Cod sursa (job #2889359) | Cod sursa (job #2982400) | Cod sursa (job #1618764)
#include <cstdio>
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
#include <algorithm>
#include <functional>
#include <string>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <bitset>
#include <stack>
#include <iomanip>
#define MOD 666013
#define NMAX 1000005
#define INF 0x3f3f3f3f
#define pb push_back
using namespace std;
FILE *fin = freopen("hashuri.in", "r", stdin);
FILE *fout = freopen("hashuri.out", "w", stdout);
typedef pair<int, int> pii;
vector<int> Hash[MOD];
inline vector<int>::iterator find(int x) {
int list = x%MOD;
vector<int>::iterator it;
for (it = Hash[list].begin(); it != Hash[list].end(); ++it)
if (x == *it)
return it;
return Hash[list].end();
}
inline void insert_val(int x) {
int list = x%MOD;
if (find(x) == Hash[list].end())
Hash[list].push_back(x);
}
inline void delete_val(int x) {
int list = x%MOD;
vector<int>::iterator it = find(x);
if (it != Hash[list].end())
Hash[list].erase(it);
}
int main() {
int i, n, op, cdiv, cnr, x, lastNr;
scanf("%d", &n);
for (i = 0; i < n; ++i) {
scanf("%d%d", &op, &x);
if (op == 1)
insert_val(x);
else if (op == 2)
delete_val(x);
else
printf("%d\n", find(x) != Hash[x%MOD].end());
}
return 0;
}