Cod sursa(job #1569487)

Utilizator Ionut228Ionut Calofir Ionut228 Data 15 ianuarie 2016 17:07:26
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int MOD = 666013;

int N;
vector<int> H[666013 + 10];

void addH(int nr)
{
    bool ok = false;
    int key = nr % MOD;

    for (vector<int>::iterator it = H[key].begin(); it != H[key].end(); ++it)
    {
        if (*it == nr)
            ok = true;
    }

    if (!ok)
        H[key].push_back(nr);
}

void delH(int nr)
{
    int key = nr % MOD;

    for (vector<int>::iterator it = H[key].begin(); it != H[key].end(); ++it)
    {
        if (*it == nr)
        {
            H[key].erase(it);
            break;
        }
    }
}

int inH(int nr)
{
    int key = nr % MOD;

    for (vector<int>::iterator it = H[key].begin(); it != H[key].end(); ++it)
    {
        if (*it == nr)
            return 1;
    }

    return 0;
}

int main()
{
    fin >> N;
    for (int i = 1, tip, x; i <= N; ++i)
    {
        fin >> tip >> x;

        if (tip == 1)
            addH(x);
        else if (tip == 2)
            delH(x);
        else
            fout << inH(x) << '\n';
    }

    fin.close();
    fout.close();
    return 0;
}