Cod sursa(job #2187374)

Utilizator killer301Ioan Andrei Nicolae killer301 Data 26 martie 2018 14:26:04
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <cstdio>
#include <vector>

using namespace std;

const int MOD = 666013;

vector <int> v[MOD];

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

void insert_hash(int x)
{
	int k = x%MOD;
	if(find_hash(x) == v[k].end())
		v[x%MOD].push_back(x);
}

void erase_hash(int x)
{
	int k = x%MOD;
	vector <int> :: iterator it = find_hash(x);
	if(it != v[k].end())
		v[k].erase(it);
}

int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    int n;
    scanf("%d", &n);
    int nr = 0;
    for(int i=0; i<n; i++)
	{
		int t, x;
		scanf("%d%d", &t, &x);
		if(t == 1) insert_hash(x);
		else if(t == 2) erase_hash(x);
		else if(t == 3) printf("%d\n", find_hash(x) != v[x%MOD].end());
	}
    return 0;
}