Cod sursa(job #629344)

Utilizator ContraPunctContrapunct ContraPunct Data 3 noiembrie 2011 10:32:02
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include<vector>
#include<fstream>

using namespace std;
const int P = 666013;

int n;
vector<int> A[P];

void Add( int x)
{
	int a = x % P;
	vector<int>::iterator it;
	int ok = 0;
	for ( it=A[a].begin() ; it != A[a].end(); ++it )
		if( *it == x)
			ok = 1;
	if( ok ==0 )
		A[a].push_back(x);	
	
}
void Delete( int x)
{
	int a = x %P;
	vector<int>::iterator it;
	for ( it=A[a].begin() ; it != A[a].end(); ++it )
		if( *it == x)
		{
			A[a].erase (it);
			return;
		}

}
int Search(int x)
{
	int a = x %P;
	vector<int>::iterator it;
	for ( it=A[a].begin() ; it != A[a].end(); ++it )
		if( *it == x)
			return 1;
	
	return 0;
}

int Op(int x, int y)
{
	if( x == 1 )//adauga
	{
		Add(y);
	}
	else
	if(x==2)//sterge
	{
		Delete(y);
	}
	else
	if(x==3)//returneaza 1 daca si numai daca x este in multime, iar in caz contrar returneaza 0.
	{
		return Search(y);
	}
	return -1;
}
void ReadData()
{
	ofstream fout("hasuri.out");
	ifstream fin("hasuri.in");
	int i,x,y,ok;
	fin>>n;
	for(i=1;i<=n;i++)
	{
		fin>>x>>y;
		ok = Op(x,y);
		if( ok == 1 )
			fout<<"1\n";
		else
			if(ok  == 0)
				fout<<"0\n";
	}
}
	
int main()
{	
	
	ReadData();
	return 0;
}