Pagini recente » Cod sursa (job #1156576) | Cod sursa (job #170074) | Cod sursa (job #447660) | Cod sursa (job #636883) | Cod sursa (job #658977)
Cod sursa(job #658977)
#include<stdio.h>
#include<vector>
#define M 666013
using namespace std;
int n;
vector<int> H[M];
inline 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();
}
inline void insereaza(int x)
{
int lista=x%M;
if(gaseste(x)==H[lista].end())
H[lista].push_back(x);
}
inline 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()
{
freopen("hashuri.in","rt",stdin);
freopen("hashuri.out","wt",stdout);
int op,x,i;
scanf("%i",&n);
for(i=0;i<n;i++)
{
scanf("%i%i",&op,&x);
if(op==1)
{
insereaza(x);
continue;
}
if(op==2)
{
sterge(x);
continue;
}
printf("%i\n",gaseste(x)!=H[x%M].end());
}
return 0;
}