Cod sursa(job #2588567)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 24 martie 2020 22:42:07
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.26 kb
#include <stdio.h>

#include <vector>



using namespace std;

#define MOD 666013



int N;

vector<int> G[MOD];



inline vector<int>::iterator find_value(int x)

{

    int list = x % MOD;

    vector<int>::iterator it;



    for (it = G[list].begin(); it != G[list].end(); ++it)

        if (*it == x)

            return it;

    return G[list].end();

}



inline void insert_value(int x)

{

    int list = x % MOD;

    if (find_value(x) == G[list].end())

        G[list].push_back(x);

}



inline void erase_value(int x)

{

    int list = x % MOD;

    vector<int>::iterator it = find_value(x);



    if (it != G[list].end())

        G[list].erase(it);

}



int main()

{

    int op, x;



    freopen("hashuri.in", "r", stdin);

    freopen("hashuri.out", "w", stdout);



    for (scanf("%d", &N); N; --N)

    {

        scanf("%d %d", &op, &x);

        if (op == 1) // inserare

        {

            insert_value(x);

            continue;

        }

        if (op == 2) // stergere

        {

            erase_value(x);

            continue;

        }

        printf("%d\n", find_value(x) != G[x % MOD].end());

    }



    return 0;

}