Pagini recente » Cod sursa (job #856002) | Atasamentele paginii Clasament lotales_ruperes_round16 | Cod sursa (job #2674410) | Cod sursa (job #294387) | Cod sursa (job #1495209)
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#include<cstring>
#define P 123457
using namespace std;
ifstream fin ("hashuri.in");
ofstream fout ("hashuri.out");
int T;
vector <int> L[P+2];
int Cauta (int x)
{
int r;
r = x % P;
for (unsigned i=0; i < L[r].size(); i++)
if (L[r][i] == x) return 1;
return 0;
}
void Adauga(int x) // ad. in hash valoarea x
{
int r;
r = x % P;
if (Cauta(x) == 0) L[r].push_back(x);
}
void Sterge(int x)
{
int r, k;
r = x % P;
k = L[r].size();
if (Cauta(x) == 1)
for (unsigned i=0; i < k; i++)
if (L[r][i] == x)
{
L[r][i] = L[r][k-1];
L[r].pop_back();
return;
}
}
int main ()
{
int i, cod, x;
fin >> T;
for (i=1; i<=T; i++)
{
fin >> cod; fin >> x;
if (cod == 1)
{
Adauga(x);
}
if (cod == 2)
{
Sterge(x);
}
if (cod == 3)
{
fout << Cauta(x) << "\n";
}
}
fin.close();
fout.close();
return 0;
}