Pagini recente » Cod sursa (job #1221819) | Monitorul de evaluare | Monitorul de evaluare | Diferente pentru problema/inghetare intre reviziile 16 si 17 | Cod sursa (job #1439538)
#include <iostream>
#include <fstream>
#define P 104729
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
struct Nod
{
int info;
Nod *leg;
};
Nod *h[P];
int main()
{
int n, i, v, x, r;
fin >> n;
Nod *p;
for (i = 1; i <= n; i++)
{
fin >> x >> v;
r = v % P;
if (x == 1)
{
for (p = h[r]; p && p->info != v ; p = p->leg);
if (p == NULL)
{
Nod *q;
q = new Nod;
q->info = v;
q->leg = h[r];
h[r] = q;
}
}
else if (x == 2)
{
for (p = h[r]; p && p->info != v; p = p->leg);
if (p)
{
if (p == h[r])
{
Nod *q;
q = h[r];
h[r] = q->leg;
delete q;
}
else
{
p->info = p->leg->info;
Nod *q;
q = p->leg;
p->leg = q->leg;
delete q;
}
}
}
else if (x == 3)
{
for (p = h[r]; p && p->info != v; p = p->leg);
if (p == NULL) fout << "0\n";
else fout << "1\n";
}
}
fout.close();
return 0;
}