Cod sursa(job #2623797)

Utilizator SahisttulArsene Marinel Sahisttul Data 3 iunie 2020 20:53:30
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
const int p = 666013;

vector<int> Hash[p];

int cautare(int X)
{
    int val = X % p;
    vector<int>::iterator i;
    for(i = Hash[val].begin(); i != Hash[val].end(); i++)
        if(*i == X)
            return 1;
    return 0;
}

void inserare(int X)
{
    int val = X % p;
    if(cautare(X) == 0)
        Hash[val].push_back(X);
}

void stergere(int X)
{
    int val = X % p;
    vector<int>::iterator i;
    for(i = Hash[val].begin(); i != Hash[val].end(); i++)
        if(*i == X)
        {
            Hash[val].erase(i);
            break;
        }
}


int main()
{
    int N;
    f >> N;
    for(int i = 1; i <= N; i++)
    {
        int op, X;
        f >> op >> X;
        switch(op)
        {
        case 1:
            inserare(X);
            break;
        case 2:
            if(cautare(X) == 1) stergere(X);
            break;
        case 3:
            g << cautare(X) << '\n';
            break;
        }
    }
    return 0;
}