Pagini recente » Cod sursa (job #2547226) | rar10 | Cod sursa (job #984905) | Cod sursa (job #499469) | Cod sursa (job #2587465)
#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;
}