Cod sursa(job #1775395)

Utilizator raulmuresanRaul Muresan raulmuresan Data 10 octombrie 2016 12:36:09
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.3 kb
#include<fstream>
#include<vector>
#define modulo 666013

using namespace std;

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

vector<int> v[666013];

int cauta(int number)
{
    int gasit = 0, hashKey = number % modulo;
    int i;
    for(i = 0;i <v[hashKey].size(); i++)
    {
        if(v[hashKey][i] == number)
        {
            return 1;
        }
    }
    return 0;
}

void adauga(int number)
{
    int hashKey = number % modulo;
    if(cauta(number) == 0)
    {
        v[hashKey].push_back(number);
    }

}



void sterge(int number)
{
    int hashKey = number % modulo, i;
    int pozition = -1;
    for(i = 0;i < v[hashKey].size();i++)
    {
        if(v[hashKey][i] == number)
        {
            pozition = i;
            break;
        }
    }
    if(pozition != -1)
    {
        v[hashKey].erase(v[hashKey].begin() + pozition);
    }

}

int main()
{
    int n, i, caz, number;
    fin >> n;
    for(i = 1; i <= n; i++ )
    {
        fin>> caz >> number;
        if(caz == 1)
        {
            adauga(number);

        }
        if(caz == 2)
        {
            sterge(number);
        }
        if(caz ==3)
        {
            fout << cauta(number) <<"\n";
        }
        //fout<<caz<<" ";
    }



}