Cod sursa(job #2744483)

Utilizator vlad_dimaVlad Dima vlad_dima Data 24 aprilie 2021 18:57:44
Problema Hashuri Scor 70
Compilator cpp-32 Status done
Runda Arhiva educationala Marime 1.28 kb
#include <bits/stdc++.h>

using namespace std;
const int prim = 666013;
vector <int> hs[prim];

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;
    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), i = hs[l].size();
}
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");

    int n, caz;
    int x;

    fin>>n;
    for (int i = 0; i < n; i++)
    {
        fin>>caz>>x;
        switch(caz)
            {
            case 1:
                {
                    inserare(x);
                    break;
                }
            case 2:
                {
                    stergere(x);
                    break;
                }
            case 3:
                fout<<exista(x)<<endl;
                break;
            }
    }
    fin.close();
    fout.close();
}