Cod sursa(job #925450)

Utilizator raulstoinStoin Raul raulstoin Data 24 martie 2013 15:49:39
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include<fstream>
#include<vector>
#include<algorithm>
#define MOD 1000
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;
}