Cod sursa(job #2732686)

Utilizator realmeabefirhuja petru realmeabefir Data 29 martie 2021 10:25:45
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.11 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

#define MAX 655357

ifstream f ("hashuri.in");
ofstream g ("hashuri.out");

vector<vector<int>> dic(MAX, vector<int>());
int prehash;

vector<int>::iterator has(unsigned int nr){

    auto it = find(dic[prehash].begin(),dic[prehash].end(),nr);
    return it;
}

void add(unsigned int nr){
    if (has(nr) != dic[prehash].end())
        return;

    dic[prehash].push_back(nr);
}

void del(unsigned int nr){
    auto it = has(nr);
    if (it == dic[prehash].end())
        return;

    dic[prehash].erase(it);
}

int main()
{
    int n, operatie;
    unsigned int nr;

    f >> n;
    for (int i = 0; i < n; i++) {
        f >> operatie >> nr;

        prehash = nr%MAX;

        switch (operatie){
            case 1:
                add(nr);
                break;
            case 2:
                del(nr);
                break;
            case 3:
                g << (has(nr) != dic[prehash].end()) << '\n';
                break;
        }
    }

    return 0;
}