Pagini recente » Cod sursa (job #1876024) | Cod sursa (job #3284982) | Cod sursa (job #1070862) | Cod sursa (job #1631541) | Cod sursa (job #658962)
Cod sursa(job #658962)
#include<stdio.h>
#include<vector>
#define M 666013
using namespace std;
vector<int> H[M];
vector<int>::iterator gaseste(int x)
{
int lista=x%M;
vector<int>::iterator i;
for(i=H[lista].begin();i!=H[lista].end();++i)
if(*i==x)
return i;
return H[lista].end();
}
void insereaza(int x)
{
int lista=x%M;
if(gaseste(x)==H[lista].end())
H[lista].push_back(x);
}
void sterge(int x)
{
int lista=x&M;
vector<int>::iterator i=gaseste(x);
if(i!=H[lista].end())
H[lista].erase(i);
}
int main()
{
int n;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
int op,x,i;
scanf("%i",&n);
for(i=0;i<n;i++)
{
scanf("%i%i",&op,&x);
if(op==1)
insereaza(x);
if(op==2)
sterge(x);
if(op==3)
printf("%i\n",gaseste(x)!=H[x%M].end());
}
return 0;
}