Cod sursa(job #2908462)

Utilizator David0911David Teregovan David0911 Data 3 iunie 2022 17:14:44
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;
int n, op, x;
const int MOD = 666017;
vector<int>Hash[MOD + 2];
ifstream in("hashuri.in");
ofstream out("hashuri.out");
int find_elem(int a)
{
        int bucket = a % MOD;
        for(int i = 0; i < Hash[bucket].size(); i++)
        {
            if(Hash[bucket][i] == a)
                return i;
        }
        return -1;
}

void insert_elem(int a)
{
    int bucket = a % MOD;
    if(find_elem(a) == -1)
        Hash[bucket].push_back(a);

}
void delete_elem(int a)
{
    int bucket = a % MOD;
    int pos = find_elem(a);
    if(pos != -1)
    {
        Hash[bucket].erase(Hash[bucket].begin() + pos);
    }

}

int main()
{
    in >> n;
    while(n--)
    {
        in >> op >> x;
        if(op == 1)
            insert_elem(x);
        else if(op == 2)
            delete_elem(x);
        else if(op == 3)
            out << (find_elem(x) != -1) << '\n';
    }
    return 0;
}