Pagini recente » Cod sursa (job #1733860) | Cod sursa (job #1231329) | Istoria paginii runda/3reve | Cod sursa (job #1360935) | Cod sursa (job #925448)
Cod sursa(job #925448)
#include<fstream>
#include<vector>
#include<algorithm>
#define MOD 1000000
using namespace std;
vector <int> G[MOD];
vector<int>:: iterator it;
inline void add(int x)
{
int list=x%MOD;
if(G[list].empty())
{
G[list].push_back(x);
return;
}
it=upper_bound(G[list].begin(),G[list].end(),x);
int poz=(int)(it-G[list].begin())-1;
if(G[list][poz]!=x)
G[list].insert(it,x);
}
inline void del(int x)
{
int list=x%MOD;
if(G[list].empty())
return;
it=upper_bound(G[list].begin(),G[list].end(),x);
int poz=(int)(it-G[list].begin())-1;
if(G[list][poz]==x)
G[list].erase(G[list].begin()+poz);
}
int main()
{
int n,x;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
fin>>n;
while(n--)
{
fin>>x;
if(x==1)
{
fin>>x;
add(x);
continue;
}
if(x==2)
{
fin>>x;
del(x);
continue;
}
fin>>x;
fout<<binary_search(G[x%MOD].begin(),G[x%MOD].end(),x)<<'\n';
}
return 0;
}