Cod sursa(job #3168365)

Utilizator catalinmarincatalinmarin catalinmarin Data 12 noiembrie 2023 11:57:33
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
struct elem{
    int value, poz;
    bool operator < (elem other) const{
        return (value > other.value);
    }
};
int poz = 0;
priority_queue<elem> heap;
bool removed[200001];
int main() {
    int n;
    fin >> n;
    for (int i = 1; i <= n; i++){
        int operatie;
        fin >> operatie;
        if (operatie == 3){
            while (removed[heap.top().poz] == true){
                heap.pop();
            }
            fout << heap.top().value << '\n';
        } else if (operatie == 1){
            poz++;
            elem x;
            x.poz = poz;
            fin >> x.value;
            heap.push(x);
        } else {
            int should_be_removed;
            fin >> should_be_removed;
            removed[should_be_removed] = true;
        }
    }
    return 0;
}