Pagini recente » Cod sursa (job #1221522) | Cod sursa (job #850060) | Cod sursa (job #2556834) | Cod sursa (job #460562) | Cod sursa (job #1368694)
#include <fstream>
using namespace std;
const int K = 666019, N = 1000001;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int lst[K], val[N], urm[N], n;
void adauga(int x)
{
int r = x%K;
n++;
val[n] = x;
urm[n] = lst[r];
lst[r] = n;
}
bool cauta(int x)
{
int p = lst[x%K];
while (p != 0)
{
if (val[p] == x)
return 1;
p = urm[p];
}
return 0;
}
void sterge(int x)
{
int r = x%K, 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]];
return;
}
p = urm[p];
}
}
int main()
{
int m,x,y;
f>>m;
for(int i = 1; i<=m; i++)
{
f >> x >> y;
if(x == 1)
{
adauga(y);
}
if(x == 2)
{
sterge(y);
}
if(x == 3)
g << cauta(y) << '\n';
}
return 0;
}