Pagini recente » Cod sursa (job #3155927) | Borderou de evaluare (job #520031) | Cod sursa (job #1088962) | Cod sursa (job #2408518) | Cod sursa (job #608603)
Cod sursa(job #608603)
#include<cstdio>
#include<vector>
#define MOD 666013
using namespace std;
int n;
vector <int> H[MOD];
vector <int>::iterator it;
inline bool Found(int x)
{
int poz=x%MOD;
for(it=H[poz].begin();it!=H[poz].end();it++)
if(*it==x)
return 1;
return 0;
}
inline void Adaugare(int x)
{
if(!Found(x))
{
int poz=x%MOD;
for(it=H[poz].begin();it!=H[poz].end();it++)
if(*it==-1)
{
*it=x;
return;
}
H[poz].push_back(x);
}
}
inline void Stergere(int x)
{
if(Found(x))
{
int poz=x%MOD;
for(it=H[poz].begin();it!=H[poz].end();it++)
if(*it==x)
{
*it=-1;
return;
}
}
}
int main()
{
int i,op,x;
freopen("hashuri.in","r",stdin);
freopen("hashuri.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d %d",&op,&x);
if(op==1)
Adaugare(x);
else
if(op==2)
Stergere(x);
else
printf("%d\n",Found(x));
}
return 0;
}