Cod sursa(job #3130014)

Utilizator sara_ionescu21Ionescu Sara sara_ionescu21 Data 16 mai 2023 17:23:15
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

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

const int HASH_SIZE = 666100;

vector<vector<int>> T(HASH_SIZE);

int H(int val) 
{
    return val % HASH_SIZE;
}

int functie_hash(int val) 
{
    int hash = H(val);

    for (int i = 0; i < T[hash].size(); i++) 
    {
        if (val == T[hash][i]) 
            return i;
    }

    return -1;
}

void inserare(int val) 
{
    if (functie_hash(val) == -1) 
    {
        T[H(val)].push_back(val);
    }
}

void remove(int val) 
{
    int i = functie_hash(val);

    if (i != -1) 
    {
        T[H(val)].erase(T[H(val)].begin() + i);
    }
}

int main() 
{
    int n;
    fin >> n;

    for (int i = 0; i < n; i++) 
    {
        int nr, x;
        fin >> nr >> x;

        if (nr == 1) 
        {
            inserare(x);
        }

        else if (nr == 2) 
        {
            remove(x);
        }

        else if (nr == 3) 
        {
            fout << (functie_hash(x) != -1) << endl;
        }
    }

    fin.close();
    fout.close();

    return 0;
}