Pagini recente » Cod sursa (job #721262) | Cod sursa (job #733992) | Borderou de evaluare (job #773669) | Cod sursa (job #277683) | Cod sursa (job #2705798)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
const int mod=472019;
vector <int> v[mod+5];
int nrop;
vector<int>::iterator find_val(int val)
{
int list = val % mod;
vector<int>::iterator it;
for (it = v[list].begin(); it != v[list].end(); ++it)
if (*it == val)
return it;
return v[list].end();
}
void push_val(int val)
{
int mod_val = val % mod;
if (find_val(val) == v[mod_val].end())
v[mod_val].push_back(val);
}
void pop_val(int val)
{
int mod_val = val % mod;
vector<int>::iterator x = find_val(val);
if (x != v[mod_val].end())
v[mod_val].erase(x);
}
int main()
{
fin>>nrop;
for(int k=1; k<=nrop; k++)
{
int op, val;
fin>>op>>val;
if(op==1)
{
push_val(val);
continue;
}
if(op==2)
{
pop_val(val);
continue;
}
if(op==3)
{
fout << (find_val(val) != v[val % mod].end()) << '\n';
}
}
return 0;
}