Pagini recente » Cod sursa (job #594269) | Cod sursa (job #3212014) | Cod sursa (job #2102226) | Cod sursa (job #2754753) | Cod sursa (job #1408805)
#include <iostream>
#include <fstream>
#include <vector>
#define nmax 666013
using namespace std;
int n;
int tip, x;
vector <int> HASH[nmax];
void adauga(int value)
{
int index = value % nmax;
bool ok = true;
for (int i = 0; i < HASH[index].size(); i++)
if (HASH[index][i] == value)
{
ok = false;
break;
}
if (ok)
HASH[index].push_back(value);
}
void sterge(int value)
{
int index = value & nmax;
for (vector <int> :: iterator it = HASH[index].begin(); it != HASH[index].end(); ++it)
if (*it == value)
{
HASH[index].erase(it);
break;
}
}
bool check(int value)
{
int index = value % nmax;
for (int i = 0; i < HASH[index].size(); i++)
if (HASH[index][i] == value)
return 1;
return 0;
}
int main()
{
ifstream fi("hashuri.in");
ofstream fo("hashuri.out");
fi >> n;
for (int i = 1; i <= n; i++)
{
fi >> tip >> x;
switch (tip)
{
case 1:
// ss adauga x in multime
adauga(x);
break;
case 2:
// se sterge x din multime
sterge(x);
break;
case 3:
// interogare, este x sau nu in multime
fo << check(x) << "\n";
break;
}
}
fi.close();
fo.close();
return 0;
}