Pagini recente » Cod sursa (job #1286577) | Cod sursa (job #2659623) | Cod sursa (job #2338004) | Cod sursa (job #553199) | Cod sursa (job #1216788)
#include <fstream>
using namespace std;
const int MAXN = 2010023 , P = 666013;
class Hash
{
int v[MAXN];
int getPos(int key)
{
int poz = key % MAXN;
int pas = 1 + key % P;
while ( v[poz] != 0 && v[poz] != key )
poz = (poz + pas) % MAXN;
return poz;
}
public:
void adauga(int key)
{
v[getPos(key)] = key;
}
bool cauta(int key)
{
return v[getPos(key)] == key;
}
void sterge(int key)
{
int poz = getPos(key);
if ( v[poz] == key )
v[poz] = -1;
}
};
Hash H;
int main()
{
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int N;
fin >> N;
while ( N-- )
{
int tip, x;
fin >> tip >> x;
if ( tip == 1 )
H.adauga(x);
else if ( tip == 2 )
H.sterge(x);
else
fout << H.cauta(x) << '\n';
}
fin.close();
fout.close();
return 0;
}