Pagini recente » Cod sursa (job #2382220) | Cod sursa (job #2205074) | Cod sursa (job #2154069) | Cod sursa (job #1276485) | Cod sursa (job #1809284)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int N = 1000000, k = 666019;
int op, nr, x;
int lst[k], val[N], urm[N];
bool exista(int x){
int r = x%k,p;
p = lst[r];
while(p!=0){
if(val[p] == x)
return true;
p = urm[p];
}
return false;
}
void adauga(int x){
int r = x%k;
nr++;
val[nr] = x;
urm[nr] = lst[r];
lst[r] = nr;
}
void sterge(int x){
int r = x%k, p;
p = lst[r];
if(val[p] == x){
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,i;
in>>n;
for(i=1;i<=n;i++){
in>>op>>x;
if(op==1)
adauga(x);
else if(op == 2)
sterge(x);
else out<<exista(x)<<"\n";
}
return 0;
}