Cod sursa(job #2797677)

Utilizator cyg_dawidDavid Ghiberdic cyg_dawid Data 10 noiembrie 2021 13:56:28
Problema Hashuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#include <vector>

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

int const MOD = 11999989;
std::vector <int> v[MOD + 5];

int search (int x) {
    int hashed = x % MOD;
    int size = v[hashed].size();
    for (int i = 0; i < size; i++)
        if (v[hashed][i] == x)
            return i;
    return -1;
}

void add (int x) {
    int hashed = x % MOD;
    if (search (x) == -1)
        v[hashed].push_back(x);
}

void remove (int x) {
    int hashed = x % MOD;
    int poz = search (x);
    if (poz != -1) {
        int size = v[hashed].size();
        if (poz != size - 1)
            v[hashed][poz] = v[hashed][size - 1];
        v[hashed].pop_back();
    }
}

int main()
{
    int n;
    fin >> n;
    for (int i = 1; i <= n; i++) {
        int tip, x;
        fin >> tip >> x;
        if (tip == 1)
            add(x);
        else if (tip == 2)
            remove (x);
        else
            fout << (search(x) != -1) << "\n";
    }
    return 0;
}