Cod sursa(job #2894248)

Utilizator iulia.talpalariuIulia-Georgiana Talpalariu iulia.talpalariu Data 27 aprilie 2022 16:55:55
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.44 kb
#include <iostream>
#include <fstream>
#include <vector>
#define PRIM 666013

std::vector <int> table[PRIM]; // un array de vectori din stl care mimeaza lista aia
int n;

std::vector<int>::iterator getIterator(int element) {
    int rest = element % PRIM;
    std::vector<int>::iterator ptr (table[rest].begin());
    for(ptr; ptr < table[rest].end(); ++ptr) {
        if(*ptr == element) {
            return ptr;
        }
    }
    return table[rest].end();
}

bool exista(int arg) {
    int rest = arg % PRIM;
    if (getIterator(arg) != table[rest].end())
        return 1;
    return 0;
}

void adauga(int arg) {
    if(!exista(arg)) {
        int rest = arg % PRIM;
        table[rest].push_back(arg);
    }
}

void sterge(int arg) {
    if(exista(arg)) {
        int rest = arg % PRIM;
        table[rest].erase(getIterator(arg));
    }
}

int main()
{   int operatie, argument;
    std::ifstream fileIn("hashuri.in");
    std::ofstream fileOut("hashuri.out");
    fileIn >> n;

    for( int i = 0; i < n ; ++i) {
        fileIn >> operatie;
        fileIn >> argument;


        switch (operatie) {
        case 1 : {
            adauga(argument);
            break;
        }
        case 2 : {
            sterge(argument);
            break;
        }
        case 3: {
            fileOut << exista(argument) << '\n';
            break;
            }
            }
    }

    return 0;
}