Cod sursa(job #2624191)

Utilizator killerdonuts358nicolae tudor killerdonuts358 Data 4 iunie 2020 16:26:25
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.25 kb
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;
#define MOD 666013

vector<int> HASH[MOD];

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

inline vector<int>::iterator find_value(int val, vector<int> &list)
{
    vector<int>::iterator it;

    for(it = list.begin(); it != list.end(); ++it)
    {
        if( *it == val)
        {
            return it;
        }
    }

    return list.end();
}

void addElement(int val)
{
    int cod = val % MOD;
    if (find_value(val, HASH[cod]) == HASH[cod].end())
        HASH[cod].push_back(val);
}

void deleteElement(int val)
{
    int cod = val % MOD;
    auto target = find_value(val, HASH[cod]);

    if(target != HASH[cod].end())
    {
        HASH[cod].erase(target);
    }
}

bool elementInList(int val)
{
    int cod = val % MOD;
    auto target = find_value(val, HASH[cod]);

    return target != HASH[cod].end();
}

int main()
{
    int n, cmd, val;

    fin >> n;

    for(int i = 0; i < n; ++i)
    {
        fin >> cmd >> val;
        if(cmd == 1) {
            addElement(val);
        } else if(cmd == 2) {
            deleteElement(val);
        } else {
            elementInList(val) ? fout << 1  << '\n': fout << 0 << '\n';
        }
    }

	return 0;
}