Pagini recente » Cod sursa (job #2455713) | Cod sursa (job #2550187) | Cod sursa (job #3197343) | Cod sursa (job #1518558) | Cod sursa (job #764820)
Cod sursa(job #764820)
#include <stdio.h>
#include <vector>
using namespace std;
#define max_el 500000
int n;
vector<int> v[max_el];
int get_hash(int nr) {
return (nr % max_el);
}
int find_(int hash, int val) {
vector<int>::iterator it;
for (it = v[hash].begin(); it != v[hash].end(); it++) {
if (*it == val) {
return it - v[hash].begin();
}
}
return -1;
}
void insert_(int val) {
int hash = get_hash(val);
if (find_(hash, val) == -1) {
v[hash].push_back(val);
}
}
void delete_(int val) {
int hash = get_hash(val);
int poz = find_(hash, val);
if (poz != -1) {
v[hash].erase(poz + v[hash].begin());
}
}
void contains_(int val) {
int hash = get_hash(val);
if (find_(hash, val) == -1) {
printf("0\n");
return;
}
printf("1\n");
}
void citeste() {
int a, b;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d%d", &a, &b);
switch (a) {
case 1:
insert_(b);
break;
case 2:
delete_(b);
break;
case 3:
contains_(b);
break;
default:
break;
}
}
}
int main() {
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
citeste();
return 0;
}