Cod sursa(job #2761627)

Utilizator mihaaelaMihaela Radu mihaaela Data 2 iulie 2021 22:09:32
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.48 kb
#include <iostream>
#include<vector>
#include<fstream>

using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

const int prim = 123443;
vector<int> v[prim];   // 123443 e nr prim, penru dispersie

void adaugare (int x)
{

    int poz, i;
    poz = x % 123443;
    for(i=0; i< v[poz].size(); i++)
        if(v[poz][i] == x)          //daca exista nu facem nimic
            return;
    v[poz].push_back(x);            // daca nu, il adaugam
}

void stergere (int x)
{
    int poz, i, lungime;
    poz = x % 123443;
    lungime = v[poz].size();
    for(i=0; i< v[poz].size(); i++)
        if(v[poz][i] == x)
            {                             // daca exita mutam pe pozitia lui ultimul element si apoi stergem ultima pozitie
                v[poz][i] = v[poz][lungime-1];
                v[poz].pop_back();
                return;
            }
}

int verificare ( int x)
{
    int poz, i;
    poz = x % 123443;
    for( i =0; i< v[poz].size(); i++)
       {
         if(v[poz][i] == x)
           return 1;
       }
    return 0;
}

int main()
{
    int nr, operatie , x;
    f>>nr;  //citim numarul de oparatii
    int i;
    for(i=0; i<nr; i++){
        f>>operatie;
        f>>x;
        if(operatie == 1)
            adaugare(x);
        else if(operatie == 2)
            stergere(x);
        else if (operatie == 3)

            g<<verificare(x)<<'\n';
    }

    f.close();
    g.close();

    return 0;
}