Cod sursa(job #2472389)

Utilizator pregoliStana Andrei pregoli Data 12 octombrie 2019 12:18:56
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.15 kb
#include <bits/stdc++.h>
#define ll long long
#define uns unsigned
#define newline '\n'
using namespace std;
///******************
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

#define P 370003
vector <int> h[P];

inline void Add(int x)
{
    int r = x % P;
    h[r].push_back(x);
}

inline void Delete(int x)
{
    int r  = x % P;
    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();
            return;
        }
}

inline bool Search(int x)
{
    int r  = x % P;
    for (int i = 0; i < h[r].size(); i++)
        if (h[r][i] == x)
        {
            return true;
        }
    return false;
}

int main()
{
    int n;
    fin >> n;
    for (int i = 1; i <= n; i++)
    {
        int x, type;
        fin >> type >> x;
        if (type == 1)
        {
            if (!Search(x))
                Add(x);
        }
        else if (type == 2)
        {
            Delete(x);
        }
        else
        {
            fout << Search(x) << newline;
        }
    }

    return EXIT_SUCCESS;
}