Pagini recente » Cod sursa (job #2699463) | Cod sursa (job #2611109) | Cod sursa (job #2153839) | Cod sursa (job #357491) | Cod sursa (job #2698486)
#include <fstream>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
constexpr int N = 1e6+1,MOD = 666019;
int v[N],urm[N],lst[MOD],nr=0;
void adaugare(int x)
{
int rest = x%MOD;
v[++nr]=x;
urm[nr]=lst[rest];
lst[rest]=nr;
}
void stergere(int x)
{
int rest = x%MOD,p = lst[rest];
while(p!=0 && v[p]!=x)
{
p = urm[p];
}
if(p!=0)
{
swap(v[p],v[lst[rest]]);
lst[rest]=urm[lst[rest]];
}
}
bool gasire(int x)
{
int rest = x%MOD,p=lst[rest];
while(p!=0)
{
if(v[p]==x)
{
return 1;
}
p=urm[p];
}
return 0;
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;++i)
{
int op,x;
cin>>op>>x;
switch (op)
{
case 1:
adaugare(x);
break;
case 2:
stergere(x);
break;
case 3:
cout<<gasire(x)<<'\n';
break;
}
}
return 0;
}