Cod sursa(job #629314)

Utilizator irene_mFMI Irina Iancu irene_m Data 3 noiembrie 2011 10:11:13
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <cstdio>
#include <iostream>
#include <vector>
#define MOD 666013
#define infile "hashuri.in"
#define outfile "hashuri.out"

using namespace std;

vector <int> G[ MOD ];
int N, op, val;

int find( int x, int val )
{
	vector <int> :: iterator it;
	for( it = G[ x ].begin(); it != G[ x ].end(); ++it)
		if( *it == val )
			return 1;
	return 0;
}

void insert( int val )
{
	int x = val % MOD;
	if( find( x, val ) )
		return;
	
	G[ x ].push_back( val );
}

void erase( int val )
{
	int x = val % MOD;
	if( ! find( x, val ) )
		return;
	int i, n = G[ x ].size();
	for( i = 0; i < n; ++i)
		if( G[ x ][ i ] == val )
		{
			G[ x ][ i ] = G[ x ][ n ];
			G[ x ].pop_back();
		}
}

int main()
{
	freopen( infile, "r", stdin );
	freopen( outfile, "w", stdout );
	
	cin >> N;
	for( ; N; N--)
	{
		cin >> op >> val;
		
		if( op == 1 )
			insert( val );
		if( op == 2 )
			erase( val );
		if( op == 3 )
			cout << find( val % MOD, val ) << "\n";
	}

	fclose(stdin);
	fclose(stdout);
	return 0;
}