Cod sursa(job #2743063)

Utilizator MihaiLazar26Lazar Mihai MihaiLazar26 Data 22 aprilie 2021 15:29:05
Problema Heapuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.26 kb
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

#define MOD 666013
vector<int> vec[MOD];

vector<int>::iterator find_value(int x)
{
    int linie = x % MOD;
    vector<int>::iterator it;

    for(it = vec[linie].begin(); it != vec[linie].end(); ++it)
        if(*it == x) return it;

    return vec[linie].end();
}

void insert_value(int x)
{
    int linie = x % MOD;
    if(find_value(x) == vec[linie].end())
        vec[linie].push_back(x);
}

void erase_value(int x)
{
    int linie = x % MOD;
    vector<int>::iterator it = find_value(x);

    if(it != vec[linie].end())
        vec[linie].erase(it);
}

int main()
{
    int n, op, x;
    fin>>n;
    for(int i=1; i<=n; ++i)
    {
        fin>>op>>x;
        switch(op)
        {
        case 1:
        {
            insert_value(x);
            break;
        }
        case 2:
        {
            erase_value(x);
            break;
        }
        case 3:
        {
            int linie = x % MOD;
            fout << (find_value(x) != vec[linie].end())<<"\n";
            break;
        }
        default:
        {
            break;
        }
        }
    }
}