Pagini recente » Cod sursa (job #2034132) | Cod sursa (job #908090) | Cod sursa (job #2068242) | Cod sursa (job #487249) | Cod sursa (job #2277244)
#include <fstream>
#define MOD 66013
using namespace std;
ifstream cin("hashuri.in");
ofstream cout("hashuri.out");
struct tabelaHash
{
long long val;
tabelaHash *Next;
};
tabelaHash *H[66013];
bool Search(long long nr)
{
tabelaHash *L = new tabelaHash;
for(L = H[nr % MOD]; L && (L -> val != nr); L = L ->Next);
return L != NULL;
}
void Add(long long nr)
{
tabelaHash *L = new tabelaHash;
L -> val = nr;
L -> Next = H[nr % MOD];
H[nr % MOD] = L;
}
void Delete(long long nr)
{
tabelaHash *L = new tabelaHash;
L = H[nr % MOD];
if(L != NULL && L -> val == nr){
tabelaHash *deS = L;
H[nr % MOD] = L ->Next;
delete deS;
return;
}
while(L != NULL && L->Next != NULL)
{
if(L->Next->val == nr)
{
tabelaHash *deSters = L->Next;
L->Next = L->Next->Next;
delete deSters;
return;
}
L = L -> Next;
}
}
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; ++i){
long long tip, val;
cin >> tip >> val;
if(tip == 1)
Add(val);
if(tip == 2)
Delete(val);
if(tip == 3)
cout << Search(val) << '\n';
}
return 0;
}