Cod sursa(job #2609051)

Utilizator KPP17Popescu Paul KPP17 Data 2 mai 2020 08:38:44
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.34 kb
#define fisier "hashuri"
#include <fstream>
std::ifstream in(fisier ".in");
std::ofstream out(fisier ".out");

// cine spune ca trebuie sa definesc functia hash cu un mod?
// daca o fac cu un div nu ar trebui sa obtin un efect similar?
// din cate am inteles nu ne intereseaza decat sa impartim numerele in grupe, prin proprietati comune care sunt usor de verificat
// ex: numerele cu proprietatea ca sunt congruente cu 15, mod 666013 sa fie in grupa lor, etc
// le voi impartii in x grupe, fiecare grupa i va reprezenta numerele cu proprietatea ca n/DIV == i.

const int
VAL = 2000000000,
N = 1000000,
DIV = 1000,
GRUPE = VAL / DIV + 1;

#include <vector>
std::vector<int> grupe[GRUPE];
#include <algorithm>

int main()
{
    int n; in >> n;
    while (n--)
    {
        int op, x; in >> op >> x;
        std::vector<int>& grupa = grupe[x / DIV];
        std::vector<int>::iterator poz_x = std::find(grupa.begin(), grupa.end(), x);
        bool exista = poz_x != grupa.end();

        switch (op)
        {
            case 1:
                if (!exista)
                    grupa.push_back(x);
                break;

            case 2:
                if (exista)
                    grupa.erase(poz_x);
                break;

            case 3:
                out << (exista? 1: 0) << '\n';
        }
    }
}