Cod sursa(job #2896437)

Utilizator Dimitri1999Dimitri-Theodor Mitran Dimitri1999 Data 29 aprilie 2022 23:02:56
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <iostream>
#include <fstream>
#include <vector>

const int M = 666663;
std :: vector <int> hash[M];

bool search (int x) {
    int val = x % M;
    for (int i : hash[val]) {
        if (i == x) return true;
    }
    return false;
}

void add (int x) {
    int val = x % M;
    hash[val].push_back(x);
}

void del (int x) {
    int val = x % M;
    int size = hash[val].size();

    for (int i = 0; i < size; ++i) {
        if (hash[val][i] == x) {
            std :: swap(hash[val][i], hash[val][size-1]);
            break;
        }
    }
    hash[val].pop_back();
}

int main() {

    std :: ifstream fin ("hashuri.in");
    std :: ofstream fout ("hashuri.out");
    int N;
    fin >> N;
    for (int i = 0; i < N; ++i) {
        int op, x;
        fin >> op >> x;
        switch (op)
        {
            case 1:
                if (!search(x)) add(x);
                break;
            case 2:
                if (search(x)) del(x);
                break;
            case 3:
                fout << search(x) << '\n';
        }
    }

    return 0;
}