Pagini recente » Cod sursa (job #695612) | Cod sursa (job #823458) | Cod sursa (job #2733346) | Cod sursa (job #3001503) | Cod sursa (job #2747290)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int p = 777013;
vector <int> Hash[p];
void adauga(int x)
{
int r;
r = x % p;
Hash[r].push_back(x);
}
bool cauta(int x)
{
int r;
r = x % p;
for (auto v : Hash[r])
if (v == x)
return true;
return false;
}
void stergere(int x)
{
int r, l, i;
r = x % p;
l = Hash[r].size();
for (i = 0; i < l; i++)
if (x == Hash[r][i])
{
Hash[r][i] = Hash[r][l - 1];
Hash[r].pop_back();
return;
}
}
int main()
{
int n, task, x;
f >> n;
for (int i = 1; i <= n; i++)
{
f >> task >> x;
if(task == 1)
if(!cauta(x))
adauga(x);
else if(task == 2)
stergere(x);
else
g << cauta(x) << "\n";
}
return 0;
}