Pagini recente » Cod sursa (job #2237916) | Cod sursa (job #2172961) | Cod sursa (job #1155908) | Cod sursa (job #1680080) | Cod sursa (job #1699179)
#include <stdio.h>
#include <vector>
#define MOD 666013
using namespace std;
typedef vector<int>::iterator Iterator;
int n;
int r;
vector<int> hashTable[MOD];
Iterator exista(int);
void adauga(int);
void sterge(int);
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
scanf("%d", &n);
int operatie;
int x;
for (int OP = 1; OP <= n; ++OP){
scanf("%d%d", &operatie, &x);
r = x % MOD;
switch (operatie){
case 1 : adauga(x); break;
case 2 : sterge(x); break;
case 3 : Iterator it = exista(x);
if (it != hashTable[r].end()) printf("1\n");
else printf("0\n");
break;
}
}
return 0;
}
Iterator exista(int x){
Iterator it;
for (it = hashTable[r].begin(); it != hashTable[r].end(); ++it)
if (*it == x) return it;
return hashTable[r].end();
}
void adauga(int x){
Iterator it = exista(x);
if (it == hashTable[r].end()) hashTable[r].push_back(x);
}
void sterge(int x){
Iterator it = exista(x);
if (it != hashTable[r].end()) hashTable[r].erase(it);
}