Cod sursa(job #629258)

Utilizator cristicecCristian Uricec cristicec Data 2 noiembrie 2011 23:50:35
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<stdio.h>
#include<vector>
#define Hash 666013;
#include<algorithm>
#include<assert.h>
using namespace std;

int numar_operatii;

vector <int> tabela_hash[666014];

void remove(int numar,int k){
	for(unsigned int i=0;i<tabela_hash[k].size();i++)
		if(tabela_hash[k][i]==numar){
			tabela_hash[k][i]=0;
			return;
		}
}

bool find_val(int numar,int k){
	for(unsigned int i=0;i<tabela_hash[k].size();i++)
		if(tabela_hash[k][i]==numar)
			return 1;
		
		return 0;
}	
int main(){
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	
	scanf("%d", &numar_operatii);
	

	int k;
	int numar,operatie;
	
	for(int i=1;i<=numar_operatii;i++){
		scanf("%d", &operatie);
		scanf("%d", &numar);
		k=numar % Hash;
		
		if(operatie==2)
		remove(numar,k);
		
		else{
			
			bool result=find_val(numar,k);
			
			if(operatie==1){
				if(!result)
					tabela_hash[k].push_back(numar);
				}
			else
				if(result)
					printf("1\n");
				else printf("0\n");
		}
	}
	
return 0;
}