Pagini recente » Borderou de evaluare (job #156742) | Cod sursa (job #1822132) | Cod sursa (job #622327) | Cod sursa (job #705707) | Cod sursa (job #1479363)
#include <bits/stdc++.h>
#define P 370003
using namespace std;
vector <int> h[370005];
void Adauga(int x)
{
int r;
r = x % P;
h[r].push_back(x);
}
int Cauta(int x)
{
int r;
r = x % P;
for (unsigned i = 0; i < h[r].size(); i++)
if (h[r][i] == x) return i;
return -1;
}
void Sterge(int x)
{
int r, i, L;
r = x % P;
L = h[r].size();
i = Cauta(x);
if (i != -1)
{
h[r][i] = h[r][L-1];
h[r].pop_back();
}
}
int main()
{
int op, x, pas, n, i;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
fin >> n;
for (pas = 1; pas <= n; ++pas)
{
fin >> op >> x;
if (op == 1)
{
i = Cauta(x);
if (i == -1) Adauga(x);
}
else if (op == 2)
{
Sterge(x);
}
else
{
if (Cauta(x) != -1) fout << "1\n";
else fout << "0\n";
}
}
fin.close();
fout.close();
return 0;
}