Pagini recente » Cod sursa (job #3227939) | Cod sursa (job #1063625) | Cod sursa (job #1428154) | Cod sursa (job #2611197)
#include <iostream>
#include <vector>
#include <list>
#include <fstream>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
// default values recommended by https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function
const uint64_t Prime = 0x00000100000001B3; // 16777619
const uint64_t offset_basis = 0xcbf29ce484222325; // 2166136261
class Hash
{
private:
vector<list<long long int>> A;
public:
Hash(size_t nr_elem=0)
{
A.resize(nr_elem);
}
void add_element(long long int val)
{
if(!find(val))
A[val%A.size()].push_back(val);
}
void del_element(long long int val)
{
A[val%A.size()].remove(val);
}
bool find(long long int val)
{
for(auto &i:A[val%A.size()])
if(i==val)
return 1;
return 0;
}
};
int main()
{
Hash A(1000231);
int N,x,y;
in>>N;
while(N--)
{
in>>x>>y;
if(x==1)
A.add_element(y);
else if(x==2)
A.del_element(y);
else
out<<A.find(y)<<'\n';
}
return 0;
}