Pagini recente » Cod sursa (job #428367) | Cod sursa (job #2916346) | Cod sursa (job #918915) | Cod sursa (job #1542139) | Cod sursa (job #2698510)
#include <fstream>
using namespace std;
ifstream cin("hashuri.in");
ofstream cout("hashuri.out");
constexpr int N = 1e6+1,MOD = 666019;
int v[N],urm[N],lst[MOD],nr=0;
inline void adaugare(int x)
{
int rest = x%MOD;
v[++nr]=x;
urm[nr]=lst[rest];
lst[rest]=nr;
}
inline 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]];
}
}
inline bool gasire(int x)
{
int rest = x%MOD,p=lst[rest];
while(p)
{
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;
}