Cod sursa(job #2270555)

Utilizator alexsandulescuSandulescu Alexandru alexsandulescu Data 27 octombrie 2018 11:32:00
Problema Heapuri Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <climits>
#include <queue>

using namespace std;

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

priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> heap;
int N, x, n, cer, used[200003];
int main()
{
    f >> N;
    for(int i = 1; i <= N; i++) {
        f >> cer;
        if(cer == 1) {
            f >> x;
            heap.push({x, i});
        } else if(cer == 2) {
            f >> x;
            used[x] = true;
        } else {
            while(!heap.empty() && used[heap.top().second])
                heap.pop();
            g << heap.top().first << "\n";
        }
    }
    return 0;
}