Pagini recente » Cod sursa (job #3175433) | Cod sursa (job #2584890) | Cod sursa (job #1578041) | Cod sursa (job #887621) | Cod sursa (job #1189360)
#include <fstream>
using namespace std;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
const int MOD = 1914354;
int operatii;
int nr;
int val[MOD], lst[MOD], urm[MOD];
void add(int x)
{
++nr;
val[nr] = x;
urm[nr] = lst[x%MOD];
lst[x%MOD] = nr;
}
bool find(int x)
{
int p = lst[x%MOD];
while (p != 0 and val[p] != x) {
p = urm[p];
}
return (p != 0);
}
void remove(int x)
{
int p = lst[x % MOD];
if (x == val[p]) {
lst[x%MOD] = urm[p];
return;
}
while (urm[p] != 0 and val[urm[p]] != x) {
p = urm[p];
}
if (urm[p] != 0) {
urm[p] = urm[urm[p]];
}
}
void read()
{
in >> operatii;
for (int i = 1; i <= operatii; ++i) {
int tip, element;
in >> tip >> element;
if (tip == 1) {
add(element);
} else if (tip == 2) {
remove(element);
} else if (tip == 3) {
out << find(element) << "\n";
}
}
}
int main()
{
read();
return 0;
}