Pagini recente » Cod sursa (job #1107669) | Cod sursa (job #57453) | Cod sursa (job #1226272) | Cod sursa (job #1342102) | Cod sursa (job #2698480)
#include <fstream>
using namespace std;
const int MOD =666019;
const int N = 1000001;
int val[N], urm[N], lst[MOD], nr;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
void adauga(int x)
{
int c=x%MOD;
val[++nr]=x;
urm[nr]=lst[c];
lst[c]=nr;
}
bool caut(int x)
{
int c=x%MOD;
int p=lst[c];
while(p!=0)
{
if(val[p]==x)
return true;
p=urm[p];
}
return false;
}
void sterge(int x)
{
int c=x%MOD;
int p=lst[c];
while(p!=0 && val[p]!=x)
{
p=urm[p];
}
if(val[p]!=0)
{
swap(val[p], val[lst[c]]);
lst[c]=urm[lst[c]];
}
}
int main()
{
int n, op, x;
in>>n;
for(int i=1; i<=n; i++)
{
in>>op>>x;
if(op==1)
adauga(x);
else if(op==2)
sterge(x);
else
out<<caut(x)<<'\n';
}
return 0;
}