Cod sursa(job #643218)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 3 decembrie 2011 10:42:28
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>
#include <vector>
#include <iostream>
#define DN 600000
using namespace std;

vector<int> v[DN];

int query(int element)
{
	int x=element%DN;
	for(int i=0;i<v[x].size();i++)
		if(v[x][i]==element) 
			return i;
		
	return -1;
	
}

void push(int element)
{
	if(query(element)==-1) 
	{
		if(v[element%DN].empty()==true) v[element%DN ].reserve(4);
		v[element%DN].push_back(element);
	}
}

void remove(int element)
{
	int x=query(element);
	if(x!=-1)
	{
		v[element%DN][x]=-1; 
		//v[element%DN].pop_back();
	}

}
int main()
{
	int n,x,y;
	freopen("hashuri.in","r", stdin);
	freopen("hashuri.out","w", stdout);
	scanf("%d ",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d %d",&x,&y);
		if(x==1) push(y);
		if(x==2) remove(y);
		if(x==3) cout<<(query(y)!=-1)<<"\n";
		
	}
	

	return 0;
}