Cod sursa(job #501936)

Utilizator the@EyE@Postavaru Stefan the@EyE@ Data 17 noiembrie 2010 09:29:26
Problema Hashuri Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 2.04 kb
#include <stdio.h>
#include <stdlib.h>
#include <set>

using namespace std;

struct element
{
	int nr;
	element *subE;
	
};

int div(int x)
{
	return(x%66978);
}

struct setHash
{
	set<int> setH;
};


//element elements[1000000];
set<int> mySet;

set<int> sets[10000];

int main()
{
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	
	int n;
	scanf("%d\n",&n);
	/*for(int i=0;i<n;i++)
	{
		int f,nr,poz;
		element *e,aux;
		scanf("%d",&f);
		
		if(f==1)
		{
			scanf("%d\n",&nr);
			&e.nr=nr;
			poz=div(nr);
			if(elements[poz].nr!=NULL)
			{
			    aux=elements[poz];
			    elements[poz]=&e;
				elements[poz].subE=&aux;
			}
			else elements[poz]=&e;
		}
		else if(f==2)
		{
			scanf("%d\n",&nr);
			poz=div(nr);
			if(elements[poz].nr!=NULL)
			{
				e=elements[poz];
				do
				{
					if(e.nr==nr)
					{
						//aux=e;
						&e=&e.subE;
					//	e=NULL;
						return;
						
					}
					else e=e.subE;
				}while(e.subE!=NULL);
				
			}
			
		}
		else if(f==3)
		{
			scanf("%d\n",&nr);
			poz=div(nr);
			if(elements[poz].nr!=NULL)
			{
				e=elements[poz];
				do
				{
					if(e.nr==nr)
					{
						
						
					}
				//	else e=e.subE;
				}while(e.subE!=NULL);
				
			}
		}
		
	}*/
	
	
	/*for(int i=0;i<n;i++)
	
	
	{
		int nr,f;
		scanf("%d %d\n",&f,&nr);
		set<int>::iterator it;
		if(f==1)
		{
			if (mySet.find(nr)==mySet.end()) mySet.insert(nr);
		}
		else if(f==2)
		{
			mySet.erase(nr);
		}
		else if(f==3)
		{
			it=mySet.find(nr);
			if (it!=mySet.end()) printf("%d\n",1);
			else printf("%d\n",0);
			
		}
		
	}*/
	
	
	
	
	for(int i=0;i<n;i++)	
	{
		int nr,f,poz;
		scanf("%d %d\n",&f,&nr);
		set<int>::iterator it;
		poz=div(nr);
		
		if(f==1)
		{
			//poz=div(nr);
			sets[poz].insert(nr);
			
		}
		else if(f==2)
		{
			sets[poz].erase(nr);
		}
		else if(f==3)
		{
			it=sets[poz].find(nr);
			if (it!=sets[poz].end()) printf("%d\n",1);
			else printf("%d\n",0);
		}
	}		
	return 0;
	
}