Pagini recente » Cod sursa (job #821057) | Cod sursa (job #2945158) | Cod sursa (job #1716648) | Cod sursa (job #549530) | Cod sursa (job #2745545)
#include <bits/stdc++.h>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
vector <int> hash_[1109]; /// Consider numarul prim 1109
int poz(int x)
{
return x % 1109;
}
int main()
{
int i, N, op, nr_curent;
in >> N;
for (i = 1; i <= N; i++)
{
in >> op >> nr_curent;
switch (op)
{
case 1:
{
hash_[poz(nr_curent)].push_back(nr_curent);
}
break;
case 2:
{
int poz_nr = poz(nr_curent);
vector<int>::iterator ptr;
/// Iau un iterator ca sa caut numarul in bucket
for (ptr = hash_[poz_nr].begin(); ptr < hash_[poz_nr].end(); ptr++)
{
if (*ptr == nr_curent)
break;
}
/// Daca il gasesc il sterg
if(ptr < hash_[poz_nr].end())
{
hash_[poz_nr].erase(ptr);
}
}
break;
case 3:
{
int poz_nr = poz(nr_curent);
vector<int>::iterator ptr;
/// Iau un iterator ca sa caut numarul in bucket
for (ptr = hash_[poz_nr].begin(); ptr < hash_[poz_nr].end(); ptr++)
{
if (*ptr == nr_curent)
break;
}
/// Daca il gasesc afisez 1, altfel afisez 0
if(ptr < hash_[poz_nr].end())
out << "1\n";
else
out << "0\n";
}
break;
}
}
return 0;
}