Cod sursa(job #2747291)

Utilizator razvanflorinPotcoveanu Florin-Razvan razvanflorin Data 28 aprilie 2021 23:39:00
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

const int p = 777013;
vector <int> Hash[p];

void adauga(int x)
{
    int r;
    r = x % p;
    Hash[r].push_back(x);
}

bool cauta(int x)
{
    int r;
    r = x % p;
    for (auto v : Hash[r])
        if (v == x)
            return true;
    return false;
}

void stergere(int x)
{
    int r, l, i;
    r = x % p;
    l = Hash[r].size();
    for (i = 0; i < l; i++)
        if (x == Hash[r][i])
        {
            Hash[r][i] = Hash[r][l - 1];
            Hash[r].pop_back();
            return;
        }
}

int main()
{
    int n, task, x;
    f >> n;
    for (int i = 1; i <= n; i++)
    {
        f >> task >> x;
        if(task == 1)
        {
            if(!cauta(x))
                adauga(x);
        }
        else if(task == 2)
            stergere(x);
        else
            g << cauta(x) << "\n";
    }
    return 0;
}