Cod sursa(job #650489)

Utilizator lavinia_nLavinia Nastase lavinia_n Data 18 decembrie 2011 11:55:19
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<stdio.h>
#include<cstdio>
#include<vector>
#define mod 666013
using namespace std;

vector <int> h[mod];

void Insert(int x) {
	int rest=x%mod,ok=0;

	for(int i=0;i<h[rest].size();++i)
		if(x==h[rest][i])
			ok=1;
	if(ok==0)
	h[rest].push_back(x);
}

int Search(int x) {
	int rest=x%mod;
		for(int i=0;i<h[rest].size();++i)
			if(x==h[rest][i])
				return 1;
		return 0;
}

void Delete(int x) {
	int rest=x%mod;
	for(int i=0;i<h[rest].size();++i)
		if(x==h[rest][i]) {
			h[rest][i]=h[rest][h[rest].size()-1];
			h[rest].pop_back();
		}
}
int main() {
	int n,op;
	int x;
	freopen("hashuri.in","r",stdin);
	freopen("hashuri.out","w",stdout);
	scanf("%d", &n);
	for(int i=0;i<n;++i) {
		scanf("%d %d",&op, &x);
		if(op==1)
			Insert(x);
		else
			if(op==2)
				Delete(x);
			else
				printf("%d\n",Search(x));
	}
	return 0;
}