Cod sursa(job #1338867)

Utilizator japjappedulapPotra Vlad japjappedulap Data 10 februarie 2015 14:37:47
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <fstream>
#include <vector>
#define MOD 666013
#define H(x) x%MOD
using namespace std;

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

int N, OP, x;
vector <int> Hash[MOD+1];

void Insert(int v);
void Erase(int v);
bool Exists(int v);

int main()
{
    for (is >> N; N; --N)
    {
        is >> OP >> x;
        if (OP == 1)
            Insert(x);
        if (OP == 2)
            Erase(x);
        if (OP == 3)
            os << Exists(x) << '\n';
    }

    is.close();
    os.close();
}

void Insert(int v)
{
    auto it = Hash[H(v)].begin();
    for (; it != Hash[H(v)].end(); ++it)
        if (*it == v)
            return;
    Hash[H(v)].push_back(v);
};

void Erase(int v)
{
    auto it = Hash[H(v)].begin();
    for (; it != Hash[H(v)].end(); ++it)
        if (*it == v)
        {
            Hash[H(v)].erase(it);
            return;
        }

};

bool Exists(int v)
{
    auto it = Hash[H(v)].begin();
    for (; it != Hash[H(v)].end(); ++it)
        if (*it == v)
            return 1;
    return 0;
};