Pagini recente » Cod sursa (job #2904045) | Cod sursa (job #1774029) | Cod sursa (job #2144129) | Cod sursa (job #2029702) | Cod sursa (job #2877947)
#include <iostream>
#include <vector>
using namespace std;
const int N = 1e7 + 7;
vector<long> hashTable[N + 1];
int getHash(long x)
{
return x % N;
}
void addElement(long num)
{
hashTable[getHash(num)].push_back(num);
}
void eraseElement(long num)
{
vector<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 num)
{
vector<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 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;
}