Cod sursa(job #629731)

Utilizator DaicuDaicu Alexandru Daicu Data 3 noiembrie 2011 21:09:01
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include<stdio.h>
#include<vector>
#define hf 666013
using namespace std;
vector <int> hash_table[hf];
int n;
void op1(int element){
	for(unsigned int i=0;i<hash_table[element%hf].size();i++)
		if(hash_table[element%hf][i]==element)
			return;
		hash_table[element%hf].push_back(element);
}

void op2(int element){
	for(unsigned int i=0;i<hash_table[element%hf].size();i++)
		if(hash_table[element%hf][i]==element){
			int c=hash_table[element%hf][i];
			hash_table[element%hf][i]=hash_table[element%hf].back();
			hash_table[element%hf].pop_back();
			return;
		}
}

void op3(int element){
	for(unsigned int i=0;i<hash_table[element%hf].size();i++)
		if(hash_table[element%hf][i]==element){
			printf("1\n");
			return;
		}
		printf("0\n");
}
	
int main(){
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	int operatie,element;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d",&operatie,&element);
		if(operatie==1)
			op1(element);
		else
			if(operatie==2)
				op2(element);
			else
				op3(element);
	}
	return 0;
}