Cod sursa(job #2735129)

Utilizator davidbejenariu2David Bejenariu davidbejenariu2 Data 1 aprilie 2021 20:41:40
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <queue>
#define N 200001

using namespace std;

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

typedef pair <int, int> pii;

int n;
priority_queue <pii, vector <pii>, greater <pii>> heap;
bool f[N];

int main()
{
    int op, aux;
    int index = 0;

    fin >> n;

    for (int i = 0; i < n; ++i)
    {
        fin >> op;

        if (op == 1)
        {
            fin >> aux;
            heap.push(make_pair(aux, ++index));
            f[index] = true;
        }

        if (op == 2)
        {
            fin >> aux;
            f[aux] = false;
        }

        if (op == 3)
        {
            while (!f[heap.top().second])
                heap.pop();

            fout << heap.top().first << '\n';
        }
    }

    fin.close();
    fout.close();

    return 0;
}