Pagini recente » Cod sursa (job #839494) | Cod sursa (job #1134350) | Cod sursa (job #2365306) | Cod sursa (job #2847014) | Cod sursa (job #2196032)
#include <fstream>
#include <vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
#define BIGPRIME 100000
class hashtable
{
public:
void add(int nr);
void del(int nr);
bool findn(int nr);
private:
int HASH(int nr);
vector <int> v[BIGPRIME];
};
int hashtable::HASH(int nr)
{
return nr%BIGPRIME;
}
void hashtable::add(int nr)
{
int location=HASH(nr), length=v[location].size(), i;
for(i=0;i<length;i++)
{
if(v[location][i]==nr)
{
break;
}
}
if(i==length) v[location].push_back(nr);
}
void hashtable::del(int nr)
{
int location=HASH(nr), length= v[location].size();
for(int i=0;i<length;i++)
{
if(v[location][i]==nr)
{
v[location].erase(v[location].begin()+i);
}
}
}
bool hashtable::findn(int nr)
{
int location=HASH(nr),length= v[location].size();
for(int i=0;i<length;i++)
{
if(v[location][i]==nr)
{
return 1;
}
}
return 0;
}
int main()
{
int n, op, nr;
hashtable H;
in>>n;
for(int i=0;i<n;i++)
{
in>>op>>nr;
switch(op)
{
case 1:
H.add(nr);
break;
case 2:
H.del(nr);
break;
case 3:
out<<H.findn(nr)<<'\n';
break;
}
}
return 0;
}