Cod sursa(job #2407131)

Utilizator Costy_Suruniuc Constantin Costy_ Data 16 aprilie 2019 15:48:38
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <vector>
#define M 666013

using namespace std;

vector<int> lst[M];


auto search(int val)
{
	vector<int>::iterator it;
	for (it = lst[val % M].begin(); it != lst[val % M].end(); it++)
	{
		if (*it == val)
		{
			return it;
		}
	}
	return lst[val % M].end();
}


void add(int val)
{
	int entr = val % M;
	auto it = search(val);
	if (it == lst[entr].end())
	{
		lst[entr].push_back(val);
	}
}
void del(int val)
{
	int temp = val % M;
	auto it = search(val);
	if (it != lst[temp].end())
	{
		lst[temp].erase(it);
	}
}

bool ext(int val)
{
	int temp = val % M;
	auto it = search(val);
	if (it != lst[temp].end())
	{
		return 1;
	}
	return 0;
}

int main()
{
	ifstream in;
	in.open("hashuri.in");
	ofstream out;
	out.open("hashuri.out");
	int n, op, val;
	in >> n;
	for (int i = 0; i < n; ++i)
	{
		in >> op >> val;
		switch (op)
		{
		case 1:
			add(val);
			break;
		case 2:
			del(val);
			break;
		case 3:
			out << ext(val) << '\n';
			break;
		}
	}

	in.close();
	out.close();
}