Pagini recente » Cod sursa (job #83277) | Cod sursa (job #1637163) | Cod sursa (job #2726184) | Cod sursa (job #885179) | Cod sursa (job #2588832)
#include <fstream>
using namespace std;
ifstream cin("hashuri.in");
ofstream cout("hashuri.out");
const int N=1000001;
const int M=666019;
int val[N], urm[N], lst[M], nr;
bool apartine(int x){
int c=x%M;
for(int p=lst[c];p!=0;p=urm[p]){
if(val[p]==x){
return true;
}
}
return false;
}
void adauga(int x){
int c=x%M;
if(apartine(x)){
return;
}
val[++nr]=x;
urm[nr]=lst[c];
lst[c]=nr;
}
void sterge(int x){
int c=x%M, p=lst[c];
while(p!=0&&val[p]!=x){
p=urm[p];
}
if(p!=0){
val[p]=val[lst[c]];
lst[c]=urm[lst[c]];
}
}
int main()
{
int n,c,x;
cin>>n;
for(int i=1;i<=n;i++){
cin>>c>>x;
if(c==1){
adauga(x);
}
if(c==2){
sterge(x);
}
if(c==3){
cout<<apartine(x)<<'\n';
}
}
return 0;
}