Pagini recente » Istoria paginii runda/oni_2005_1_10 | Cod sursa (job #2224501) | Cod sursa (job #218799) | Cod sursa (job #1201722) | Cod sursa (job #1370675)
#include <cstdio>
#include <vector>
#define MOD 666013
using namespace std;
vector<int> H[MOD];
vector <int>::iterator find_value(int x) {
int ind = x % MOD;
vector<int>::iterator it;
for (it = H[ind].begin(); it != H[ind].end(); it++)
if (*it == x)
return it;
return H[ind].end();
}
void insert_value(int x) {
int ind = x % MOD;
if (find_value(x) == H[ind].end())
H[ind].push_back(x);
}
void erase_value(int x) {
int ind = x % MOD;
vector<int>::iterator it = find_value(x);
if (it != H[ind].end())
H[ind].erase(it);
}
int main() {
FILE *in = fopen("hashuri.in", "r");
FILE *out = fopen("hashuri.out", "w");
int n;
fscanf(in, "%d", &n);
int operatie, x;
for(int i = 1; i <= n; i++) {
fscanf(in, "%d %d", &operatie, &x);
switch (operatie) {
case 1:
insert_value(x);
break;
case 2:
erase_value(x);
break;
case 3:
if (find_value(x) == H[x % MOD].end())
fprintf(out, "0\n");
else
fprintf(out, "1\n");
break;
}
}
return 0;
}