Pagini recente » Cod sursa (job #880422) | Cod sursa (job #237278) | Cod sursa (job #2388644) | Cod sursa (job #1150622) | Cod sursa (job #2581059)
#include <fstream>
using namespace std;
const int M = 666019, N = 1000001;
int val[N], urm[N], lst[N], nr;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
void adauga(int x)
{
int categ = x % M;
val[++nr] = x;
urm[nr] = lst[categ];
lst[categ] = nr;
}
int exista(int x)
{
int categ = x % M;
for(int p = lst[categ]; p != 0; p = urm[p])
{
if(val[p] == x)
return 1;
}
return 0;
}
void sterge(int x)
{
int categ = x % M;
int p = lst[categ];
if(val[p] == x)
{
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()
{
int n, x, y;
in >> n;
for(int i = 1; i <= n; i++)
{
in >> x >> y;
if(x == 1)
adauga(y);
else if(x == 2)
sterge(y);
else out << exista(y) << "\n";
}
return 0;
}