Pagini recente » Cod sursa (job #447016) | Cod sursa (job #1975480) | Cod sursa (job #3209790) | Cod sursa (job #466651) | Cod sursa (job #301029)
Cod sursa(job #301029)
#include <stdio.h>
#include <algorithm>
#include <vector>
using namespace std;
#define MOD 666013
vector <int> v[MOD];
int n, i, t, x;
vector <int>::iterator h_find(int x)
{
int l = x % MOD;
vector <int>::iterator it;
for (it=v[l].begin(); it != v[l].end(); ++it)
{
if (*it == x)
{
return it;
}
}
return v[l].end();
}
void h_add(int x)
{
int l = x % MOD;
if (h_find(x) == v[l].end())
{
v[l].push_back(x);
}
}
void h_remove(int x)
{
int l = x % MOD;
vector <int>::iterator it = h_find(x);
if (it != v[l].end())
{
v[l].erase(it);
}
}
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out","w",stdout);
scanf("%d ", &n);
for (i=1; i<=n; ++i)
{
scanf("%d %d ", &t, &x);
if (t == 1)
{
h_add(x);
}
else
if (t == 2)
{
h_remove(x);
}
else
if (t == 3)
{
printf("%d\n", h_find(x) != v[x % MOD].end());
}
}
return 0;
}