Pagini recente » Cod sursa (job #2689269) | Cod sursa (job #2719771) | Cod sursa (job #1098361)
#include <cstdio>
#include <vector>
#include <iostream>
using namespace std;
vector <int> h[399000];
#define d 394677
#define pb push_back
int key(int x)
{
return x%d;
}
void update_hash(int x)
{
int k=key(x);
int ok=0;
for(int i=0; i<h[k].size() && ok==0; i++)
{
if(h[k][i]==x) ok++;
}
if(ok==0)
h[k].pb(x);
}
void delete_hash(int x)
{
int k=key(x);
for(int i=0; i<h[k].size(); i++)
{
if(h[k][i]==x)
{
if(i!=h[k].size()-1)
h[k][i]=h[k][h[k].size()-1];
else
h[k].pop_back();
}
}
}
int query_hash(int x)
{
int k=key(x);
for(int i=0; i<h[k].size(); i++)
if(h[k][i]==x)
return 1;
return 0;
}
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n, a, b;
scanf("%i", &n);
for(int i=1;i<=n;i++)
{
scanf("%i %i", &a, &b);
if(a==1)
update_hash(b);
if(a==2)
delete_hash(b);
if(a==3)
printf("%i\n", query_hash(b));
}
return 0;
}