Cod sursa(job #2778846)

Utilizator andreimocianAndrei Mocian andreimocian Data 2 octombrie 2021 12:03:44
Problema Hashuri Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.19 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <stack>
#define P 370003

using namespace std;

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

vector<int> h[370005];

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

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

void Stergere(int x)
{
    int r = x % P, l, i;
    l = h[r].size();
    i = Cautare(x);
    if(i != -1)
    {
        h[r][i] = h[r][l-1];
        h[r].pop_back();
    }
}

int main()
{
    int n, op, x;
    fin >> n;
    for (int i = 1; i <= n; i++)
    {
        fin >> op >> x;
        if (op == 1)
        {
            Adaugare(x);
        }
        else if (op == 2)
        {
            Stergere(x);
        }
        else if (op == 3)
        {
            if(Cautare(x) != -1)
            {
                fout << 1 << "\n";
            }
            else
            {
                fout << 0 << "\n";
            }
        }
    }
    fin.close();
    fout.close();
    return 0;
}