Pagini recente » Cod sursa (job #2736623) | Cod sursa (job #319675) | Cod sursa (job #2713729) | Cod sursa (job #2329396) | Cod sursa (job #2294929)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
vector<int> hashuri[1000001];
const int KEY = 196613;
void AdaugaInHash(int y)
{
int este = 0, pozitie = y % KEY;
long long i;
for (i = 0; i < hashuri[pozitie].size(); i++)
{
if (este == 1)
i = hashuri[pozitie].size() + 1;
if (hashuri[pozitie][i] == y)
este = 1;
else
{
if (hashuri[pozitie][i] == -1)
{
este = 1;
hashuri[pozitie][i] = y;
}
}
}
if (este == 0)
hashuri[pozitie].push_back(y);
}
void StergeDinHash(int y)
{
int este = 0, pozitie = y % KEY;
long long i;
for (i = 0; i < hashuri[pozitie].size(); i++)
{
if (este == 1)
i = hashuri[pozitie].size() + 1;
if (hashuri[pozitie][i] == y)
{
este = 1;
hashuri[pozitie][i] = -1;
}
}
}
int EsteSauNuInHash(int y)
{
int este = 0, pozitie = y % KEY;
long long i;
for (i = 0; i < hashuri[pozitie].size(); i++)
{
if(este == 1)
i = hashuri[pozitie].size() + 1;
if(hashuri[pozitie][i] == y)
este = 1;
}
return este;
}
int main()
{
int n, y, cere;
f >> n;
for (int i = 1; i <=n; i++)
{
f >> cere >> y;
if (cere == 1)
AdaugaInHash(y);
if(cere == 2)
StergeDinHash(y);
if(cere == 3)
g << EsteSauNuInHash(y) << "\n";
}
return 0;
}