Pagini recente » Cod sursa (job #2197833) | Cod sursa (job #3193269) | Cod sursa (job #2334588) | Cod sursa (job #2789646) | Cod sursa (job #1511654)
#include<cstdio>
#include<vector>
using namespace std;
const int MOD = 666013;
vector<int> H[MOD + 1];
int N;
inline int f (int Q) {
return Q % MOD;
}
int findH (int Q) {
int r = f (Q);
for (int i = 0; i < H[r].size (); i++) {
if (H[r][i] == Q) {
return i;
}
}
return -1;
}
void insertH (int Q) {
if (findH (Q) == -1) {
H[ f(Q) ].push_back (Q);
}
}
void deleteH (int Q) {
int poz = findH (Q);
if (poz != -1) {
int r = f (Q);
for (int i = poz; i < H[r].size() - 1; i++) {
H[r][i] = H[r][i + 1];
}
H[r].pop_back ();
}
}
int main () {
freopen ("hashuri.in", "r", stdin);
freopen ("hashuri.out", "w", stdout);
scanf ("%d", &N);
while (N--) {
int tip, X;
scanf ("%d%d", &tip, &X);
switch (tip) {
case 1: insertH (X); break;
case 2: deleteH (X); break;
case 3: if (findH (X) == -1) {
printf ("0\n");
}
else {
printf ("1\n");
}
break;
}
}
return 0;
}