Cod sursa(job #1217522)

Utilizator andreas.chelsauAndreas Chelsau andreas.chelsau Data 7 august 2014 17:17:06
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;

const int mod = 100019;
vector<int> hashTable[100019];

inline void insert(int elt){
	hashTable[elt % mod].push_back(elt);
}
inline void remove(int elt){
	int remainder = elt % mod;
	if(hashTable[remainder].size() > 0){
		int j = 0;
		for(; j < (int)hashTable[remainder].size(); j++){
			if(hashTable[remainder][j] == elt)
				break;
		}
		if(j != (int) hashTable[remainder].size())
			hashTable[remainder].erase(hashTable[remainder].begin() + j);
	}
}
inline void find(int elt){
	int remainder = elt % mod;
	if(hashTable[remainder].size() > 0){
		int j = 0;
		for(; j < (int)hashTable[remainder].size(); j++){
			if(hashTable[remainder][j] == elt)
				break;
		}
		if(j != (int) hashTable[remainder].size())
			printf("1\n");
		else
			printf("0\n");
	}
	else
		printf("0\n");
}
int main(){
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	int n,x,y;
	scanf("%d",&n);
	while(n--){
		scanf("%d%d",&x,&y);
		switch(x){
			case 1: insert(y); break;
			case 2: remove(y); break;
			case 3: find(y); break;
		}

	}

	return 0;
}