Cod sursa(job #2669123)

Utilizator BAlexandruBorgovan Alexandru BAlexandru Data 6 noiembrie 2020 09:32:17
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.18 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int mod = 1000000;

int n;

vector < int > h[1000000];

vector < int > :: iterator findValue(int x)
{
    int i = x % mod;
    vector < int > :: iterator it;
    for (it = h[i].begin(); it != h[i].end(); it++)
        if (*it == x)
            return it;

    return h[i].end();
}

void insertValue(int x)
{
    int i = x % mod;
    if (findValue(x) == h[i].end())
        h[i].push_back(x);
}

void eraseValue(int x)
{
    int i = x % mod;
    vector < int > :: iterator it = findValue(x);
    if (findValue(x) != h[i].end())
        h[i].erase(it);
}

int main()
{
    f >> n;

    for (int i=1; i<=n; i++)
    {
        int op, x; f >> op >> x;
        if (op == 1)
            insertValue(x);
        else if (op == 2)
            eraseValue(x);
        else if (op == 3)
        {
            int i = x % mod;
            vector < int > :: iterator it = findValue(x);
            if (it != h[i].end())
                g << 1 << "\n";
            else
                g << 0 << "\n";
        }
    }

    return 0;
}