Cod sursa(job #1495209)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 2 octombrie 2015 18:55:32
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#include<cstring>
#define P 123457

using namespace std;

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

int T;
vector <int> L[P+2];

int Cauta (int x)
{
    int r;
	r = x % P;
	for (unsigned i=0; i < L[r].size(); i++)
		if (L[r][i] == x) return 1;
	return 0;
}

void Adauga(int x) // ad. in hash valoarea x
{
	int r;
	r = x % P;
	if (Cauta(x) == 0) L[r].push_back(x);
}

void Sterge(int x)
{
	int r, k;
	r = x % P;
	k = L[r].size();
        if (Cauta(x) == 1)
	for (unsigned i=0; i < k; i++)
		if (L[r][i] == x)
		{
			L[r][i] = L[r][k-1];
			L[r].pop_back();
			return;
        }
}


int main ()
{
 int i, cod, x;
 fin >> T;
 for (i=1; i<=T; i++)
 {
   fin >> cod; fin >> x;

   if (cod == 1)
   {
      Adauga(x);
   }

   if (cod == 2)
   {
      Sterge(x);
   }

   if (cod == 3)
   {

      fout << Cauta(x) << "\n";
   }
 }

 fin.close();
 fout.close();
 return 0;
}