Pagini recente » Cod sursa (job #1676904) | Cod sursa (job #1375801) | Cod sursa (job #1228794) | Cod sursa (job #639167) | Cod sursa (job #2908470)
#include <bits/stdc++.h>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
/*
HASHURI TEORETICE
int n, op, x;
const int MOD = 666017;
vector<int>Hash[MOD + 2];
ifstream in("hashuri.in");
ofstream out("hashuri.out");
int find_elem(int a)
{
int bucket = a % MOD;
for(int i = 0; i < (int) Hash[bucket].size(); i++)
{
if(Hash[bucket][i] == a)
return i;
}
return -1;
}
void insert_elem(int a)
{
int bucket = a % MOD;
if(find_elem(a) == -1)
Hash[bucket].push_back(a);
}
void delete_elem(int a)
{
int bucket = a % MOD;
int pos = find_elem(a);
if(pos != -1)
{
Hash[bucket].erase(Hash[bucket].begin() + pos);
}
}
int main()
{
in >> n;
while(n--)
{
in >> op >> x;
if(op == 1)
insert_elem(x);
else if(op == 2)
delete_elem(x);
else if(op == 3)
out << (int)(find_elem(x) != -1) << '\n';
}
return 0;
}*/
const int MOD = 666017;
int n,op,x;
unordered_map<int,vector<int>>m;
int find_elem(int a)
{
int bucket = a % MOD;
for(int i = 0; i < (int) m[bucket].size(); i++)
{
if(m[bucket][i] == a)
return i;
}
return -1;
}
void insert_elem(int a)
{
int bucket = a % MOD;
if(find_elem(a) == -1)
m[bucket].push_back(a);
}
void delete_elem(int a)
{
int bucket = a % MOD;
int pos = find_elem(a);
if(pos != -1)
{
m[bucket].erase(m[bucket].begin() + pos);
}
}
int main()
{
in >> n;
while(n--)
{
in >> op >> x;
if(op == 1)
insert_elem(x);
else if(op == 2)
delete_elem(x);
else if(op == 3)
out << (int)(find_elem(x) != -1) << '\n';
}
return 0;
}