Cod sursa(job #2742781)

Utilizator Tache_RoxanaTache Roxana Tache_Roxana Data 21 aprilie 2021 19:10:55
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <iostream>
#include <fstream>
#include <vector>
#define prim 666013
using namespace std;

vector <int> v[prim];

//cautam daca x este in hash
bool find_x(int x)
{
    for(int i = 0; i < v[x % prim].size(); i++)
        if(v[x % prim][i] == x)
            return 1;
    return 0;
}

//adaugam elementul x in hash daca nu exista deja
void add_x(int x)
{
    if(!find_x(x)) {v[x % prim].push_back(x); }
}

//stergem elementul x din hash in caz ca il gasim
void delete_x(int x)
{
    for(int i = 0; i < v[x % prim].size(); i++)
        if(v[x % prim][i] == x)
            {
                v[x % prim][i] = v[x % prim][v[x % prim].size() - 1];
                v[x % prim].pop_back();
                break;
            }
}

int main()
{
    ifstream in("hashuri.in");
    ofstream out("hashuri.out");
    int n; in >> n;
    for(int i = 0; i < n; i++)
    {
        int a, b;
        in >> a >> b;
        if(a == 1)
            add_x(b);
        else if(a == 3)
                out << find_x(b) << "\n";
             else delete_x(b);
    }
    return 0;
}