Cod sursa(job #1460274)

Utilizator al.mocanuAlexandru Mocanu al.mocanu Data 12 iulie 2015 08:11:36
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <stdio.h>
#include <vector>
#define MAX 1000005
using namespace std;

int n, x, op, i;
vector<int> H[MAX];

void insert(int x);
void erase(int x);
int find(int x);

int main(){
	freopen("hashuri.in", "r", stdin);
	freopen("hashuri.out", "w", stdout);
	scanf("%d", &n);
	for(i = 0; i < n; i++){
		scanf("%d%d", &op, &x);
		if(op == 1)
			insert(x);
		else if(op == 2)
			erase(x);
		else
			printf("%d\n", find(x));
	}
	return 0;
}

void insert(int x){
	int p = x % n, ver = 0, j;
	for(j = 0; j < H[p].size(); j++)
		if(H[p][j] == x){
			ver = 1;
			break;
		}

	if(!ver)
		H[p].push_back(x);
}

void erase(int x){
	int p = x % n, ver = 0, j;
	for(j = 0; j < H[p].size(); j++)
		if(H[p][j] == x){
			ver = 1;
			break;
		}

	if(ver)
		H[p].erase(H[p].begin() + j);
}

int find(int x){
	int p = x % n, ver = 0, j;
	if(!H[p].empty())
		for(j = 0; j < H[p].size(); j++)
			if(H[p][j] == x){
				ver = 1;
				break;
			}

	return ver;
}