Pagini recente » Cod sursa (job #2985726) | Cod sursa (job #681982) | Cod sursa (job #2883527) | Cod sursa (job #2481515) | Cod sursa (job #2570334)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int MOD = 666019;
const int dim = 1000005;
int val[dim],urm[dim],lst[MOD],nr,n,op,x;
bool Exista(int x)
{
int categ = x%MOD;
for (int p=lst[categ]; p!=0; p=urm[p])
{
if (val[p] == x)
{
return 1;
}
}
return 0;
}
void Adauga(int x)
{
if (Exista(x)) return ;
int categ = x%MOD;
val[++nr] = x;
urm[nr] = lst[categ];
lst[categ] = nr;
}
void Sterge(int x)
{
if (!Exista(x)) return ;
int categ = x%MOD;
int p = lst[categ];
if (x == val[p])
{
lst[categ] = urm[p];
return ;
}
while (urm[p] != 0)
{
if (val[urm[p]] == x)
{
urm[p] = urm[urm[p]];
return ;
}
p = urm[p];
}
}
int main()
{
in >> n;
while (n--)
{
in >> op >> x;
if (op == 1) Adauga(x);
if (op == 2) Sterge(x);
if (op == 3) out << Exista(x) << "\n";
}
return 0;
}