Cod sursa(job #2416951)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 28 aprilie 2019 17:26:02
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.43 kb
#include <bits/stdc++.h>

#define ERRORCODE -1

using namespace std;

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

const int MOD = 666013;

vector < int > Hash[MOD + 5];

int Q;

static inline void insertInteger (int integer);
static inline int searchInteger (int integer);
static inline void deleteInteger (int integer);

int main()
{
    int operation, integer;
    fin >> Q;
    while (Q--)
    {
        fin >> operation >> integer;
        if (operation == 1)
            insertInteger (integer);
        if (operation == 2)
            deleteInteger (integer);
        if (operation == 3)
            if (searchInteger (integer) == ERRORCODE)
                fout << 0 << "\n";
            else
                fout << 1 << "\n";
    }
    return 0;
}

static inline void insertInteger (int integer)
{
    if (searchInteger (integer) == ERRORCODE)
    {
        int mod = integer % MOD;
        Hash[mod].push_back (integer);
    }
}

static inline void deleteInteger (int integer)
{
    int position = searchInteger (integer);
    if (position != ERRORCODE)
    {
        int mod = integer % MOD;
        Hash[mod].erase (Hash[mod].begin () + position);
    }
}

static inline int searchInteger (int integer)
{
    int mod = integer % MOD;
    for (int i = 0; i < Hash[mod].size (); ++i)
        if (Hash[mod][i] == integer)
            return i;
    return ERRORCODE;
}