Pagini recente » Cod sursa (job #3243006) | Cod sursa (job #1615239) | Cod sursa (job #209834) | Cod sursa (job #1791132) | Cod sursa (job #2198069)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int N=1000001,R=666019;
int lst[N],val[N],urm[N],nr,n;
bool cauta(int x){
int r=x%R,p;
p=lst[r];
while(p!=0){
if(val[p]==x)
return true;
p=urm[p];
}
return false;
}
void adauga(int x){
if(cauta(x))
return;
int r=x%R,p;
val[++nr]=x;
urm[nr]=lst[r];
lst[r]=nr;
}
void sterge(int x){
int r=x%R,p;
p=lst[r];
if(val[p]==x){
lst[r]=urm[p];
return;
}
while(urm[p]!=0 && val[urm[p]]!=x)
p=urm[p];
if(urm[p]!=0)
urm[p]=urm[urm[p]];
}
int main()
{
int k,vl;
f>>n;
for(int i=1;i<=n;i++){
f>>k>>vl;
if(k==1)
adauga(vl);
if(k==2)
sterge(vl);
if(k==3){
if(cauta(vl))
g<<1<<'\n';
else
g<<0<<'\n';
}
}
return 0;
}