Pagini recente » Cod sursa (job #3313312) | Cod sursa (job #652787) | Cod sursa (job #205572) | Cod sursa (job #3135317) | Cod sursa (job #2745779)
#include <iostream>
#include<bits/stdc++.h>
#include<fstream>
using namespace std;
struct nod
{
long long valoare;
nod* urm;
};
nod* v[666013];
nod* ult[666013];
int main()
{
ifstream f("hashuri.in");
ofstream g("hashuri.out");
long long n,nr;
int k;
f>>n;
for(long long i=0;i<666013;i++)
{
v[i] = new nod();
ult[i] = new nod();
v[i]->valoare = -1;
v[i]->urm = NULL;
ult[i] = v[i];
}
for(long long i=0;i<n;i++)
{
f>>k;
f>>nr;
if(k==1)
{
int ok = 1;
nod* aux ;
aux = new nod();
aux = v[nr%666013];
while(aux!=NULL && ok ==1)
{
if(aux->valoare == nr)
ok = 0;
else
{
aux = aux->urm;
}
}
if(ok == 1)
{
delete aux;
aux = new nod();
aux-> valoare = nr;
aux -> urm = NULL;
ult[nr%666013] -> urm = aux;
ult[nr%666013] = aux;
}
delete aux;
}
if(k==2)
{
nod* aux;
long long rest;
rest = nr%666013;
aux = new nod();
aux = v[rest];
if(aux -> valoare == nr)
{
v[rest] = v[rest] -> urm;
delete aux;
}
else
{
int ok = 0;
while(ok == 0 && aux ->urm != NULL)
{
if(aux -> urm -> valoare == nr)
ok = 1;
else
aux = aux -> urm;
}
if(ok == 1)
{
nod* aux2;
aux2 = new nod();
aux2 = aux -> urm -> urm;
delete aux -> urm;
aux -> urm = new nod();
aux -> urm = aux2;
delete aux2;
}
delete aux;
}
}
if(k==3)
{
nod* aux;
long long rest;
rest = nr%666013;
aux = new nod();
aux = v[rest];
int ok = 0;
while(aux!= NULL && ok ==0)
{
if(aux -> valoare == nr)
{
g<<1<<endl;
ok = 1;
}
else
aux = aux-> urm;
}
if(ok == 0)
g<<0<<endl;
delete aux;
}
}
return 0;
}