Pagini recente » Cod sursa (job #2875235) | Cod sursa (job #3263844) | Cod sursa (job #545821) | Cod sursa (job #2928705) | Cod sursa (job #2428800)
#include <bits/stdc++.h>
#define MOD 999983
#define MAX(a, b) (a > b ? a : b)
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
vector<int> hashTable[MOD];
int op, aux;
int n;
int InHashTable(int key)
{
int hashList = key % MOD;
for(int i = 0; i < hashTable[hashList].size(); i++)
if(hashTable[hashList][i] == key)
return 1;
return 0;
}
void PutHash(int key)
{
int hashList = key % MOD;
if(!InHashTable(key))
hashTable[hashList].push_back(key);
}
void DeleteHash(int key)
{
int hashList = key % MOD;
if(InHashTable(key))
for(int i = 0; i < hashTable[hashList].size(); i++)
if(hashTable[hashList][i] == key)
{
hashTable[hashList].erase(hashTable[hashList].begin() + i);
}
}
int main()
{
fin >> n;
while(n--)
{
fin >> op >> aux;
switch(op)
{
case 1:
if(!InHashTable(aux))
PutHash(aux);
break;
case 2:
if(InHashTable(aux))
DeleteHash(aux);
break;
case 3:
fout << InHashTable(aux) << '\n';
}
}
return 0;
}