Cod sursa(job #615701)

Utilizator nashnash mit nash Data 10 octombrie 2011 16:12:24
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb


#include <cstdio>
#include <list>

using namespace std;

#define NMAX 200001

int n , val , op;

#define List list<int>
#define Iterator List::iterator

List vec[ NMAX ];

Iterator search( List & li , int val ) {
	Iterator it;
	for(it = li.begin() ; it != li.end() ; it++)
		if(*it == val) 
			return it;
	return li.end();
}

void add( List & li , int val ) {
	Iterator it = search( li , val );
	if( it == li.end() ) 
		li.push_back(val);
}

void del( List & li , int val ) {
	li.remove(val);
}

void print( list<int> & li , int val ) {
	Iterator it = search( li , val );
	if(it != li.end() )
		printf("1\n");
	else
		printf("0\n");
}


int main() {

	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);

	scanf("%d",&n);

	for(int  i = 1 ; i <= n ; i++) {

		scanf("%d %d",&op,&val);

		switch( op ) {
		
		case 1:
			add( vec[ val % NMAX ] , val);
			break;
		case 2:
			del( vec[ val % NMAX ] , val);
			break;
		case 3:
			print( vec[ val % NMAX ] , val );
			break;
		}
		
	}

	return 0;
}