Cod sursa(job #2746350)

Utilizator amalia.gemanGeman Aamalia amalia.geman Data 27 aprilie 2021 18:44:32
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.43 kb
#include <bits/stdc++.h>
#define Nr_Prim 666013

using namespace std;

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



int n, o, x, p, ok, poz;
vector <int> h[Nr_Prim];



bool Gasire(int x)
{
    p = x % Nr_Prim;

    vector<int>::iterator it;

    for(it = h[p].begin(); it != h[p].end(); ++it) // cautam in lista lui p pe x
        if(*it == x)
            return 1;

    return 0;
}


inline vector<int>::iterator Pozitie(int x)
{
    p = x % Nr_Prim;

    vector<int>::iterator it;

    for (it = h[p].begin(); it != h[p].end(); ++it)
        if (*it == x)
            return it;
}



int main()
{
    fin >> n;

    for(int i = 1; i <= n; i++)
    {
        fin >> o;

        if(o == 1)  // inserare
        {
            fin >> x;

            p = x % Nr_Prim;

            if(Gasire(x) == 0)     // daca nu exista elementul x in lista p
                h[p].push_back(x);          // il adaugam
        }
        else if(o == 2) // stergere
        {
            fin >> x;

            p = x % Nr_Prim;

            ok = Gasire(x);
            if (ok == 1)
                h[p].erase(Pozitie(x));

        }
        else if(o == 3) // afisare 1 / 0
        {
            fin >> x;

            p = x % Nr_Prim;

            if(Gasire(x) == 1)
                fout << 1 << "\n";
            else
                fout << 0 << "\n";
        }
    }
    return 0;
}