Pagini recente » Cod sursa (job #202639) | Cod sursa (job #3121179) | Cod sursa (job #301117) | Cod sursa (job #1194858) | Cod sursa (job #2580876)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
const int N=1000001;
const int K=666019;
int lst[N],urm[N],val[N],nr;
bool apartine (int x)
{
int c=x%K;
for (int p=lst[c];p!=0;p=urm[p])
{
if (val[p]==x)
{
return true;
}
}
return false;
}
void adauga (int x)
{
if (apartine(x))
return;
int c=x%K;
val[++nr]=x;
urm[nr]=lst[c];
lst[c]=nr;
}
void sterge (int x)
{
int c=x%K;
if (!apartine(x)) return;
for (int p=lst[c];p!=0;p=urm[p])
{
if (val[p]==x)
{
val[p]=-1;
}
}
}
bool fnd (int x)
{
int c=x%K;
for (int p=lst[c];p!=0;p=urm[p])
{
if (val[p]==x)
return 1;
}
return 0;
}
int main()
{
int n,x,y;
in>>n;
for (int i=1;i<=n;i++)
{
in>>x>>y;
if (x==1)
{
adauga (y);
continue;
}
else if (x==2)
{
sterge(y);
continue;
}
else
{
if (fnd(y)) out<<1<<'\n';
else out<<0<<'\n';
}
}
return 0;
}