Pagini recente » Cod sursa (job #590646) | Cod sursa (job #2180861) | Cod sursa (job #3146406) | Cod sursa (job #2126354) | Cod sursa (job #2745435)
#include <iostream>
#include <fstream>
#include <vector>
#include <unordered_map>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
class Hash{
static const int prime = 666013;
vector < vector < int > > hash;
public:
Hash(){
hash.reserve(prime);
}
bool check(int val)
{
int pos = val % prime;
bool ok = 0;
for(int i = 0; i < hash[pos].size(); ++i)
if(hash[pos][i] == val)
{
ok = 1;
break;
}
return ok;
}
void insert(int val)
{
if(check(val) == 1) return;
int pos = val % prime;
hash[pos].push_back(val);
}
void delete_value(int val)
{
int pos = val % prime;
for(int i = 0; i < hash[pos].size(); ++i)
if(hash[pos][i] == val)
hash[pos].erase(hash[pos].begin() + i);
}
};
Hash v;
int n, task, x;
int main()
{
in >> n;
for(int i = 1 ; i <= n; ++i)
{
in >> task >> x;
if(task == 1) v.insert(x);
if(task == 2) v.delete_value(x);
if(task == 3) out << v.check(x) << "\n";
}
return 0;
}