Pagini recente » Cod sursa (job #2763129) | Cod sursa (job #1877449) | Cod sursa (job #2307205) | Rating Razvan Truta (razveh) | Cod sursa (job #2877953)
#include <iostream>
#include <vector>
using namespace std;
const int N = 666013;
vector<long long > hashTable[N + 1];
int getHash(long long x)
{
return x % N;
}
void addElement(long long num)
{
hashTable[getHash(num)].push_back(num);
}
void eraseElement(long long num)
{
vector<long long > element = hashTable[getHash(num)];
for (int i = 0 ; i < element.size() ; ++i)
{
if(num == element[i])
{
element[i] = -1;
break;
}
}
hashTable[getHash(num)] = element;
}
int findElement(long long num)
{
vector<long long > element = hashTable[getHash(num)];
for ( int i = 0 ; i < element.size() ; ++i)
if(num == element[i])
return 1;
return 0;
}
int main()
{
// 666013
long long op, x, n;
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
cin >> n;
for ( int i = 0 ; i < n ; i++)
{
cin >> op >> x;
if(op == 1)
{
addElement(x);
continue;
}
else if ( op ==2 )
{
eraseElement(x);
continue;
}
else
cout <<findElement(x) << endl ;
}
return 0;
}