Cod sursa(job #2744492)

Utilizator vlad_dimaVlad Dima vlad_dima Data 24 aprilie 2021 19:15:35
Problema Hashuri Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.14 kb
#include <bits/stdc++.h>

using namespace std;
const int prim = 666013;
vector <int> hs[prim];
int n, caz;
int x;

void inserare(int x)
{
    int l = x % prim;
    bool deja_ins = false;
    for (int i = 0; i < hs[l].size() && !deja_ins; i++)
        if (hs[l][i] == x)
            {
                deja_ins = true;
                break;
            }
    if (!deja_ins)
        hs[l].push_back(x);
}
void stergere(int x)
{
    int l = x % prim;
    for (int i = 0; i < hs[l].size(); i++)
        if (hs[l][i] == x)
            {
                hs[l].erase(hs[l].begin() + i);
                break;
            }
}
int exista(int x)
{
    int l = x % prim;
    for (int i = 0; i < hs[l].size(); i++)
        if (hs[l][i] == x)
            return 1;
    return 0;
}

int main()
{
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");
    fin>>n;
    for (int i = 0; i < n; i++)
    {
        fin>>caz>>x;
        if (caz == 1)
            inserare(x);
        else if (caz == 2)
            stergere(x);
        else
            fout<<exista(x)<<endl;
    }
    fin.close();
    fout.close();
}