Cod sursa(job #2660529)

Utilizator dudugpfPaiu Andreea dudugpf Data 19 octombrie 2020 17:44:20
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.32 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define NUM_KEY 500000
vector<int> h[NUM_KEY];

int find_element(int element) {
    int key = element % NUM_KEY;

    for (int i = 0; i < h[key].size(); ++i) {
        if (h[key][i] == element) {
            return 1;
        }
    }

    return 0;
}

void add_element(int element) {
    if (find_element(element) == 0) {
        int key = element % NUM_KEY;
        h[key].push_back(element);
    }
}

void erase_element(int element){
    if (find_element(element) == 1) {
        int key = element % NUM_KEY;
        for (int i = 0; i < h[key].size(); ++i) {
            if (h[key][i] == element) {
                h[key].erase(h[key].begin() + i);
            }
        }
    }
}

int main() {
    int operatie;
    int element;
    int n;
    

    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);

    scanf("%d", &n);

    for (int i = 0 ; i < n; ++i)
    {
        scanf("%d %d", &operatie, &element);
        //printf("%d %d\n", operatie, element);
        if (operatie == 1) {
            add_element(element);
        }
        if (operatie == 2) {
            erase_element(element);
        }
        if (operatie == 3) {
            int result = find_element(element);
            printf("%d\n", result);
        }
        
    }
    

    return 0;
}