Cod sursa(job #2299251)

Utilizator VadimCCurca Vadim VadimC Data 9 decembrie 2018 10:30:22
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.13 kb
#include <iostream>
#include <fstream>
#include <cmath>
#include <vector>

using namespace std;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

#define M 1500007

int n;
vector<int> h[M];

void add(int);
void del(int);
bool search(int);

int main(){
	int i;
	int op, x;
	fin >> n;
	while(n--){
		fin >> op >> x;
//		cout << op << ' ' << x << '\n';
		if(op == 1) add(x);
		else if(op == 2) del(x);
		else fout << search(x) << '\n';
	}
}

bool search(int x){
	int val = x % M;
	int i;
	for(i = 0; i < h[val].size(); i++) if(h[val][i] == x) return 1;
	return 0;
}

void add(int x){
	int val = x % M;
	int i;
	bool ex = false;
	for(i = 0; i < h[val].size() && !ex; i++) if(h[val][i] == x) ex = true;
	if(!ex) h[val].push_back(x);
}

void del(int x){
	int val = x % M;
	vector<int>::iterator it;
	for(it = h[val].begin(); it != h[val].end(); it++)
		if(*it == x){
			h[val].erase(it);
			break;
		}
}





//bool EPrim(int x){
//	int i;
//	int qx = sqrt(x);
//	if(x % 2 == 0 && x != 2) return 0;
//	for(i = 3; i <= sqrt(x); i += 2)
//		if(x % i == 0) return 0;
//	return 1;
//}