Cod sursa(job #2221386)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 13 iulie 2018 22:05:20
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.26 kb
#include <iostream>
#include <cstdio>
#include <vector>
#include <set>
#define BIGPRIMENUMBER 73243

using namespace std;

class Hash
{
    set<int> lists[BIGPRIMENUMBER];
public:
    bool search(int x)
    {
        int indice = x % BIGPRIMENUMBER;
        if(lists[indice].count(x))
            return true;
        return false;
    }

    void insert(int x)
    {
        if(!search(x))
        {
            int indice = x % BIGPRIMENUMBER;
            lists[indice].insert(x);
        }
    }

    void remove(int x)
    {
        if(search(x))
        {
            int indice = x % BIGPRIMENUMBER;
            lists[indice].erase(x);
        }
    }
};

int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    int n;
    Hash h;
    scanf("%d", &n);
    for(int i = 0; i < n; ++i)
    {
        int op, nr;
        scanf("%d", &op);
        scanf("%d", &nr);
        switch(op)
        {
            case 1:
            h.insert(nr);
            break;
            case 2:
            h.remove(nr);
            break;
            case 3:
            printf("%d\n", (int)h.search(nr));
            break;
            default:
            break;
        }
    }
    return 0;
}