Pagini recente » Cod sursa (job #2893024) | Cod sursa (job #1524427) | Cod sursa (job #725552) | Cod sursa (job #2820262) | Cod sursa (job #2580890)
#include <fstream>
using namespace std;
const int N=1000006;
const int K=666019;
int val[N], urm[N],lst[K],nr,n,op,a;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
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)
{
if(apartine(x)==false) return ;
int c=x%K;
int p=lst[c];
if(val[p]==x)
{
lst[c]=urm[p];
return;
}
while(urm[p]!=0 && val[urm[p]]!=x) p=urm[p];
if(urm[p]!=0) urm[p]=urm[urm[p]];
}
int main()
{
in>>n;
for(int i=1;i<=n;i++)
{
in>>op>>a;
if(op==1) adauga(a);
if(op==2) sterge(a);
if(op==3)
{
bool ok=apartine(a);
if(ok==1) out<<"1\n";
else out<<"0\n";
}
}
return 0;
}