Cod sursa(job #2732656)

Utilizator realmeabefirhuja petru realmeabefir Data 29 martie 2021 10:00:32
Problema Hashuri Scor 30
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 has(unsigned int nr){
    int prehash = MAX%nr;

    if (find(dic[prehash].begin(),dic[prehash].end(),nr) != dic[prehash].end()){
        return 1;
    }
    return 0;
}

void add(unsigned int nr){
    if (has(nr)) return;

    int prehash = MAX%nr;
    dic[prehash].push_back(nr);
}

void del(unsigned int nr){
    if (!has(nr)) return;

    int prehash = MAX%nr;
    dic[prehash].erase(find(dic[prehash].begin(),dic[prehash].end(),nr));
}

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

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

        switch (operatie){
            case 1:
                add(nr);
                break;
            case 2:
                del(nr);
                break;
            case 3:
                g << has(nr) << '\n';
                break;
        }
    }

    return 0;
}