Cod sursa(job #2439107)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 15 iulie 2019 00:21:28
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.24 kb
// HACKER MAN
#include <bits/stdc++.h>

using namespace std;

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

const int p = 666013;
int n, op, val;
vector <int> H[p + 3];

int h(int x)
{
    return x % p;
}

int cauta(int x)
{
    int r = h(x);
    for (int i = 0; i < H[r].size(); ++i)
    {
        if (H[r][i] == x)
        {
            return i;
        }
    }
    return -1;
}

void adauga(int x)
{
    int r = h(x);
    if (cauta(x) == -1)
    {
        H[r].push_back(x);
    }
}

void sterge(int x)
{
    int r = h(x);
    for (int i = 0; i < H[r].size(); ++i)
    {
        if (H[r][i] == x)
        {
            swap(H[r][i], H[r][H[r].size() - 1]);
            H[r].pop_back();
            break;
        }
    }
}


int main()
{
    fin >> n;
    while (n--)
    {
        fin >> op >> val;
        if (op == 1)
        {
            adauga(val);
        }
        else if (op == 2)
        {
            sterge(val);
        }
        else
        {
            if (cauta(val) == -1)
            {
                fout << 0 << "\n";
            }
            else
            {
                fout << 1 << "\n";
            }
        }
    }
    return 0;
}