Cod sursa(job #2746562)

Utilizator linte_robertLinte Robert linte_robert Data 28 aprilie 2021 00:57:04
Problema Heapuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream>
#include <vector>
#include <fstream>
#include<bits/stdc++.h>
using namespace std;
void operatie_2( vector < int > &lista, int numar ){
    int i = 0;
    while( lista[i] != numar ){
        i++;
    }
    lista[i] = lista[ lista.size()-1 ];
    lista.pop_back();
}
int main(){
    vector < int > numere;
    vector < int > lista;
    int n;
    ifstream fin("heapuri.in");
    ofstream fout("heapuri.out");
    fin >> n;
    for( int i = 0; i < n; i++ ){
        int operatie, numar;
        fin >> operatie;
        if( operatie == 1 ){
            fin >> numar;
            numere.push_back(numar);
            lista.push_back(numar*(-1));
        }
        if( operatie == 2 ){
            fin >> numar;
            operatie_2( lista, numere[numar-1]*(-1) );
        }
        if( operatie == 3 ){
            make_heap(lista.begin(), lista.end());
            fout << lista.front()*(-1) << endl;
        }
    }
}