Pagini recente » Cod sursa (job #2815491) | Cod sursa (job #1156811) | Cod sursa (job #3249792) | Cod sursa (job #3197738) | Cod sursa (job #3277732)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream in("hashuri.in");
ofstream out("hashuri.out");
const int MOD = 666013;
const int MAX = 1000000;
int frecv[MAX], n;
vector<int> v;
int cautbin (int nr)
{
int st=0, dr=v.size(), mij, poz=-1;
if(st<=dr)
{
mij=(st+dr)/2;
if(v[mij] < nr)
{
st++;
}
else
{
dr--;
poz=mij;
}
}
return poz;
}
int main()
{
in>>n;
for(int i=0; i<n; ++i)
{
int op, x;
in>>op>>x;
if(op==1) //se adauga daca nu e
{
if(!v.empty())
{
sort(v.begin(), v.end());
int poz=cautbin(x);
if(v[poz]!=x) //nu e in vector
v.push_back(x);
}
if(v.empty()) //dc e gol
{
v.push_back(x);
}
}
else if(op==2) //se sterge daca nu e
{
if(!v.empty())
{
sort(v.begin(), v.end());
int poz=cautbin(x);
if(v[poz]==x) //nu e in vector
v[poz]=-1;
}
}
else //afis 1 daca e in multime
{
sort(v.begin(), v.end());
int poz=cautbin(x);
if(v[poz]==x) //daca apare in mult
out<<1<<'\n';
else
out<<0<<'\n';
}
cout<<" pentru "<<op<<" "<<x<<" poz in v "<<cautbin(x)<<'\n';
/*for(int i=0; i<v.size(); ++i)
cout<<v[i]<<" ";
cout<<'\n';*/
}
return 0;
}