Pagini recente » Cod sursa (job #2530555) | Cod sursa (job #2758237) | Cod sursa (job #768437) | Cod sursa (job #1530336) | Cod sursa (job #1045905)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int n, x;
int t;
struct nod{
int val;
nod *urm;
};
nod *v[666014];
int hash_f(int a){
return a%666013;
}
void adauga(int a){
int h=hash_f(a);
nod *p=new nod;
p->val=a;
p->urm=NULL;
nod *q=v[h];
if(q==NULL) {
v[h]=p;
return;
}
while(q->urm!=NULL){
if(q->val==a) return;
q=q->urm;
}
if(q->val==a) return;
q->urm=p;
}
void sterge(int a){
int h=hash_f(a);
if(v[h]==NULL) return;
nod *q=v[h];
if(q->val==a){
v[h]=q->urm;
delete q;
return;
}
while(q->urm!=NULL){
nod *p=q->urm;
if(p->val==a){
q->urm=p->urm;
delete p;
return;
}
else q=q->urm;
}
}
void exista(int a){
int h=hash_f(a);
nod *q=v[h];
while(q!=NULL){
if(q->val==a){
g<<1<<'\n';
return;
}
else q=q->urm;
}
g<<0<<'\n';
return;
}
int main()
{
f>>n;
while(n--){
f>>t>>x;
if(t==1) adauga(x);
if(t==2) sterge(x);
if(t==3) exista(x);
}
return 0;
}