Cod sursa(job #629357)

Utilizator ml.vladareanVladarean Maria ml.vladarean Data 3 noiembrie 2011 10:38:16
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
//#define P 666013;
int A,B,n;
const int P=666013;
ofstream fout("hashuri.out");
vector<int> Arr[P];

int find(int x)
{
	int K=x%P;
	for(int i=0;i<Arr[K].size();i++)
		if(Arr[K][i]==x)
		{
			//fout<<"X gasit"<<x<<"\n";
			return i;
		}
		
	return -2;
		
}
void add(int x)
{
int K=x%P;
Arr[K].push_back(x);
}

void remove(int x)
{
	int K=x%P;
	if(find(x)!=-2)
		Arr[K].erase(Arr[K].begin()+find(x));
}

int Operatii(int x,int y)
{
	switch(x)
	{
	case 1:
		add(y);
		return -1;
	
	case 2:
		remove(y);
		return -1;
	case 3:
		if(find(y)!=-2)
		{
			//fout<<"y"<<y<<"\n";
			return 1;
			
		}
			
		else
			return 0;
	default:
		return -1;

	}
}

void Read()
{
	
	ifstream fin("hashuri.in");
	
	fin>>n;
	for(int i=1;i<=n;i++)
	{
		fin>>A>>B;
		//fout<<A<<B<<"op";
		int nr=Operatii(A,B);
		if(nr!=-1)
			fout<<nr<<"\n";
	}
	fin.close();
	fout.close();
		
}
int main()
{

	Read();
	return 0;
}