Pagini recente » Cod sursa (job #636305) | Cod sursa (job #1530541) | Cod sursa (job #247910) | Cod sursa (job #234401) | Cod sursa (job #1443559)
#include <fstream>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int N=1000001, m=666019;
int lst[3],val[N],urm[N],nr=0;
void adauga(int x){
int r=x%m;
nr++;
val[nr]=x;
urm[nr]=lst[r];
lst[r]=nr;
}
bool cauta(int x){
int p=lst[x%m];
while(p!=0){
if(val[p]==x) return true;
p=urm[p];
}
return false;
}
void sterge(int x){
int r=x%m, p;
p=lst[r];
if(x==val[p]){
lst[r]=urm[p];
return;
}
while(urm[p]!=0){
if(val[urm[p]]==x) urm[p]=urm[urm[p]];
else p=urm[p];
}
}
int main()
{
int n,op,x;
in>>n;
for(int i=1;i<=n;i++){
in>>op>>x;
if(op==1) adauga(x);
if(op==2) sterge(x);
if(op==3) out<<cauta(x)<<"\n";
}
return 0;
}