Cod sursa(job #2465601)

Utilizator StanCatalinStanCatalin StanCatalin Data 30 septembrie 2019 15:48:08
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.21 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

const int MOD = 666013;

int n;
vector <int> resturi[MOD];


vector<int>::iterator Find(int val)
{
    int poz = val%MOD;
    vector<int>::iterator it;

    for (it = resturi[poz].begin(); it != resturi[poz].end(); it++)
    {
        if (*it == val)
        {
            return it;
        }
    }
    return resturi[poz].end();
}


void Adauga(int val)
{
    int poz = val%MOD;
    vector<int>::iterator it = Find(val);
    if (it == resturi[poz].end())
    {
        resturi[poz].push_back(val);
    }
}

void Sterge(int val)
{
    int poz = val%MOD;
    vector<int>::iterator it = Find(val);

    if (it != resturi[poz].end())
    {
        resturi[poz].erase(it);
    }
}

int main()
{
    in >> n;
    int x,op;
    while (n)
    {
        in >> op >> x;
        if (op == 1)
        {
            Adauga(x);
        }
        else if (op == 2)
        {
            Sterge(x);
        }
        else
        {
            out << (Find(x) != resturi[x%MOD].end()) << "\n";
        }
        n--;
    }
    return 0;
}