Pagini recente » Cod sursa (job #2608617) | Cod sursa (job #2218369) | Cod sursa (job #940616) | Cod sursa (job #3289359) | Cod sursa (job #2627271)
#include <fstream>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int M = 666019;
const int N = 1e6+1;
int v[N], lst[M], urm[N],nr=0;
bool apartine(int x)
{
int c=x % M;
for(int p=lst[c];p!=0;p=urm[p])
{
if(v[p]==x)
return true;
}
return false;
}
void adaugare(int x)
{
if(apartine(x))
return;
int c= x % M;
v[++nr] = x;
urm[nr] = lst[c];
lst[c] = nr;
}
void stergere(int x)
{
int c= x%M, p=lst[c];
while(p!=0 && v[p]!=x)
{
p=urm[p];
}
if(p!=0)
{
v[p]=v[lst[c]];
lst[c]=urm[lst[c]];
}
}
int main()
{
int n;
in>>n;
for(int i=0;i<n;i++)
{
int cer,x;
in>>cer>>x;
if(cer==1)
{
adaugare(x);
}
else if(cer==2)
{
stergere(x);
}
else if(cer==3)
{
out<<apartine(x)<<'\n';
}
}
return 0;
}