Cod sursa(job #2550005)

Utilizator ArkhamKnightyMarco Vraja ArkhamKnighty Data 18 februarie 2020 10:50:29
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <fstream>
#include <vector>

using namespace std;
typedef vector<int>::iterator vit;

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

const int mod = 666013;
vector <int> h[mod];

vit find_value(int x)
{
    int list_id = x % mod;
    for(vit it = h[list_id].begin(); it != h[list_id].end(); it ++)
        if(*it == x)
        return it;
    return h[list_id].end();
}

void insert_value(int x)
{
    int list_id = x % mod;

    if(find_value(x) == h[list_id].end())

        h[list_id].push_back(x);
}

void erase_value(int x)
{
    int list_id = x % mod;
    vit itv = find_value(x);
    if(itv != h[list_id].end())
        h[list_id].erase(itv);
}

void query(int x)
{
    int list_id = x % mod;
    vit itv = find_value(x);
    (itv == h[list_id].end()) ?
        cout << 0 << '\n' : cout << 1 << '\n';
}

int main()
{
    int n, i, x, y;

    cin >> n;

    for(int i = 1 ; i <= n ; i++)
    {
        cin >> x >> y;

        if(x == 1)
            insert_value(y);

        else (x == 2) ?
            erase_value(y) : query(y) ;

    }

    return 0;
}