Pagini recente » Cod sursa (job #2936294) | Cod sursa (job #1624284) | Cod sursa (job #766727)
Cod sursa(job #766727)
#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;
#define MAXN 700027
int n, x, tip_operatie;
vector<int> tabel_dispersie[MAXN];
vector<int>::iterator cauta (int x) {
int k = x % MAXN;
vector<int>::iterator iter = tabel_dispersie[k].begin();
while (iter != tabel_dispersie[k].end()) {
if (*iter == x)
return iter;
iter++;
}
return tabel_dispersie[k].end();
}
void insereaza (int x) {
int k = x % MAXN;
if (cauta(x) == tabel_dispersie[k].end())
tabel_dispersie[k].push_back(x);
}
void sterge (int x) {
int k = x % MAXN;
vector<int>::iterator iter = cauta(x);
if (iter != tabel_dispersie[k].end())
tabel_dispersie[k].erase(iter);
}
int main () {
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int i;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d %d", &tip_operatie, &x);
switch (tip_operatie) {
case 1: insereaza(x); break;
case 2: sterge(x); break;
case 3: cauta(x);
printf("%d\n", cauta(x) != tabel_dispersie[x % MAXN].end());
break;
}
}
return 0;
}