Pagini recente » Cod sursa (job #2262400) | Cod sursa (job #1570206) | Cod sursa (job #692502) | Cod sursa (job #1595599) | Cod sursa (job #1326772)
#include <fstream>
using namespace std;
ifstream f ("hashuri.in");
ofstream g ("hashuri.out");
const int p = 1000003;
struct nod
{
int info;
nod *adr;
} *v[p-1];
nod *e_in_lista (int h, int nr)
{
nod *p;
p = v[h];
if (!p)
return NULL;
if (p -> info == nr)
return p;
while (p -> adr)
{
if (p -> adr -> info == nr)
return p;
p = p -> adr;
}
return NULL;
}
void adauga_in_lista (int h, int nr)
{
nod *c;
c = new nod;
c -> info = nr;
c -> adr = v[h];
v[h] = c;
}
void sterge_din_lista_1 (nod *d)
{
nod *s;
s = d -> adr;
d -> adr = s -> adr;
delete s;
}
void sterge_din_lista_2 (int h)
{
nod *c;
c = v[h];
v[h] = v[h] -> adr;
delete c;
}
int main()
{
int n, op, x, H;
nod *b;
f >> n;
for (int i = 1; i <= n; i ++)
{
f >> op >> x;
H = x % p;
if (op == 1)
adauga_in_lista (H, x);
else
if (op == 2)
{
b = e_in_lista (H, x);
if (b)
{
if (v[H] -> info == x)
sterge_din_lista_2 (H);
else
sterge_din_lista_1 (b);
}
}
else
{
b = e_in_lista (H, x);
if (b)
g << 1;
else
g << 0;
g << '\n';
}
}
f.close ();
g.close ();
return 0;
}