Pagini recente » Cod sursa (job #55753) | Cod sursa (job #653226) | Cod sursa (job #1418102) | Cod sursa (job #2217690) | Cod sursa (job #1368796)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int MOD = 666013;
const int N = 1000001;
int n;
int lst[MOD], val[N], urm[N], nr = 0;
void adauga(int x)
{
int r = x % MOD;
val[++nr] = x;
urm[nr] = lst[r];
lst[r] = nr;
}
bool cauta(int x)
{
int r = x % MOD;
for(int p = lst[r]; p; p = urm[p])
if(val[p] == x)
return 1;
return 0;
}
void sterge(int x)
{
int r = x % MOD;
int p = lst[r];
if(val[p] == x)
{
lst[r] = urm[p];
return;
}
for(p = lst[r]; urm[p]; p = urm[p])
if(val[urm[p]] == x)
{
urm[p] = urm[urm[p]];
return;
}
}
int main()
{
in >> n;
for(int i = 1; i <= n; i++)
{
int op, x;
in >> op >> x;
switch(op)
{
case 1:
adauga(x);
break;
case 2:
sterge(x);
break;
case 3:
out << cauta(x) << '\n';
break;
}
}
return 0;
}