Pagini recente » Cod sursa (job #730600) | Cod sursa (job #266203) | Cod sursa (job #3248172) | Cod sursa (job #3162386) | Cod sursa (job #239458)
Cod sursa(job #239458)
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
const int HS = 10000;
vector<int> H[HS];
inline int h(int x)
{
return (int) ( ( (x * 0.618033) - (int)(x * 0.618033) ) * HS );
}
void insert(int x)
{
H[h(x)].push_back(x);
}
void erase(int x)
{
int hh = h(x);
vector<int>::iterator it;
for(it = H[hh].begin(); it != H[hh].end(); ++it)
if(*it == x)
{
H[hh].erase(it);
return;
}
}
int search(int x)
{
int hh = h(x);
for(vector<int>::iterator it = H[hh].begin(); it != H[hh].end(); ++it)
if(*it == x) return 1;
return 0;
}
int main()
{
int N,op,x;
fin>>N;
while(N--)
{
fin>>op>>x;
switch(op)
{
case 1: insert(x); break;
case 2: erase(x); break;
case 3: fout<<search(x)<<'\n'; break;
}
}
return 0;
}