Cod sursa(job #2705798)

Utilizator toma_ariciuAriciu Toma toma_ariciu Data 13 februarie 2021 12:32:59
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

const int mod=472019;
vector <int> v[mod+5];
int nrop;


vector<int>::iterator find_val(int val)
{
    int list = val % mod;
    vector<int>::iterator it;

    for (it = v[list].begin(); it != v[list].end(); ++it)
        if (*it == val)
            return it;
    return v[list].end();
}

void push_val(int val)
{
    int mod_val = val % mod;
    if (find_val(val) == v[mod_val].end())
        v[mod_val].push_back(val);
}

void pop_val(int val)
{
    int mod_val = val % mod;
    vector<int>::iterator x = find_val(val);

    if (x != v[mod_val].end())
        v[mod_val].erase(x);
}

int main()
{
    fin>>nrop;
    for(int k=1; k<=nrop; k++)
    {
        int op, val;
        fin>>op>>val;
        if(op==1)
        {
            push_val(val);
            continue;
        }
        if(op==2)
        {
            pop_val(val);
            continue;
        }
        if(op==3)
        {
            fout << (find_val(val) != v[val % mod].end()) << '\n';
        }
    }
    return 0;
}