Cod sursa(job #2217179)

Utilizator nurof3nCioc Alex-Andrei nurof3n Data 29 iunie 2018 13:50:54
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
#include <vector>

using namespace std;

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

const int hash_size = 666013;
int N;
vector<int> H[hash_size];

inline int h(int x)
{
    return x % hash_size;
}
vector<int>:: iterator find(int x)
{
    int y = h(x);
    for(auto it = H[y].begin(); it != H[y].end(); it++)
        if(*it == x)
            return it;
    return H[y].end();
}
void insert(int x)
{
    int y = h(x);
    if(find(x) == H[y].end())
        H[y].push_back(x);
}
void erase(int x)
{
    int y = h(x);
    vector<int>::iterator it = find(x);
    if (it != H[y].end())
        H[y].erase(it);
}
int main()
{
    in >> N;
    int op, x;
    for(int i = 1; i <= N; i++)
    {
        in >> op >> x;
        if(op == 1)
            insert(x);
        if(op == 2)
            erase(x);
        if(op == 3)
            out << ((find(x) == H[h(x)].end()) ? 0 : 1) << '\n';
    }
    return 0;
}