Cod sursa(job #836685)

Utilizator alexandru93moraru alexandru sebastian alexandru93 Data 16 decembrie 2012 15:24:11
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<stdio.h>
#include<vector>
#define MOD 666013
using namespace std;

vector<int> Hash[MOD];

vector<int>::iterator search(int x){
	int poz=x%MOD;
	vector<int>::iterator it;
	for(it=Hash[poz].begin();it!=Hash[poz].end();it++)
		if(*it==x)
			return it;
	return Hash[poz].end();
}

void ins(int x){
	int poz=x%MOD;
	if(search(x)==Hash[poz].end())
		Hash[poz].push_back(x);
}

void del(int x){
	int poz=x%MOD;
	vector<int>::iterator it=search(x);
	if(it!=Hash[poz].end())
		Hash[poz].erase(it);
}

void citire(){
	int op,N,x;
	freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
	scanf("%d",&N);
	for(int i=1;i<=N;i++){
		scanf("%d%d",&op,&x);
		if(op==1)
			ins(x);
		else
			if(op==2)
				del(x);
			else
				printf("%d\n", search(x) != Hash[x % MOD].end());
	}
}

int main(){
	citire();
	return 0;
}