Cod sursa(job #449899)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 7 mai 2010 08:54:45
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.28 kb
#include <algorithm>
#include <fstream>
#include <vector>

using namespace std;

typedef bool int01;
typedef char cha08;
typedef int int32;

const cha08 Input[] = "hashuri.in";
const cha08 Output[] = "hashuri.out";

const int32 Dim = 1000001;
const int32 Mod = 1234561;

int32 N;
vector <int32> h[Mod];

void Add( int32 val ) {

	int32 m;
	vector <int32> :: iterator it;

	m = val % Mod;

	for( it = h[m].begin(); it != h[m].end(); ++it )
		if( *it == val )
			return;

	h[m].push_back( val );
}

void Del( int32 val ) {

	int32 m;
	vector <int32> :: iterator it;

	m = val % Mod;

	for( it = h[m].begin(); it != h[m].end(); ++it )
		if( *it == val ) {

			h[m].erase( it );
			return;
		}
}

int01 Que( int32 val ) {

	int32 m;
	vector <int32> :: iterator it;

	m = val % Mod;

	for( it = h[m].begin(); it != h[m].end(); ++it )
		if( *it == val )
			return 1;

	return 0;
}

int32 main() {

	ifstream fin( Input );
	ofstream fout( Output );

	int32 tip, val;

	fin >> N;

	while( N-- ) {

		fin >> tip >> val;

		switch( tip ) {

			case 1:
				Add( val );
				break;
			case 2:
				Del( val );
				break;
			case 3:
				fout << Que( val ) << "\n";
				break;
		}
	}

	fin.close();
	fout.close();

	return 0;
}