Cod sursa(job #2535880)

Utilizator goblinupufosPopescu Traian goblinupufos Data 1 februarie 2020 12:24:23
Problema Hashuri Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.55 kb
#include <iostream>
#include <vector>
#include <fstream>
#define prim 8999
/// const int prim = 8999;

using namespace std;

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

vector <int> sir[prim];

void adauga( int nr ) {

    int linie = nr % prim;
    int lg = sir[linie].size();
    int stop = 0;

    for ( int i = 0; i < lg && stop == 0 ; ++i ) {

        if ( sir[linie][i] == nr ) {

            stop = 1;

        }

    }

    if ( stop == 0 ) {

        sir[linie].push_back(nr);

    }

}

void sterge( int nr ) {

    int linie = nr % prim;
    int lg = sir[linie].size();
    int stop = 0;

    for ( int i = 0; i < lg && stop == 0 ; ++i ) {

        if ( sir[linie][i] == nr ) {

            stop = 1;
            sir[linie][i] = sir[linie][sir[linie].size() - 1];
            sir[linie].pop_back();

        }

    }

}

void returneaza( int nr ) {

    int linie = nr % prim;
    int lg = sir[linie].size();
    int stop = 0;

    for ( int i = 0; i < lg && stop == 0 ; ++i ) {

        if ( sir[linie][i] == nr ) {

            stop = 1;
            fout<<1<<endl;

        }

    }

    if ( stop == 0 ) {

        fout<<0<<endl;

    }

}

int main()
{

    int n;
    fin>>n;

    for ( int i = 1; i <= n; ++i ) {

        int nr, op;
        fin>>op>>nr;

        if ( op == 1 ) {

            adauga(nr);

        } else if ( op == 2 ) {

            sterge(nr);

        } else {

            returneaza(nr);

        }

    }

    return 0;

}