Cod sursa(job #2658156)

Utilizator Rares31100Popa Rares Rares31100 Data 13 octombrie 2020 12:58:51
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

priority_queue <int, vector<int>, greater<int>> q;
map <int, int> toElim;
int lista[200001], vf;

ifstream in("heapuri.in");
ofstream out("heapuri.out");
int n;

int main()
{
    in >> n;

    for(int c, val; n; n--)
    {
        in >> c;
        switch(c)
        {
            case 1:
                in >> val;
                lista[++vf] = val;
                q.push(val);
                break;

            case 2:
                in >> val;
                toElim[lista[val]]++;
                break;

            case 3:
                while(toElim[q.top()])
                {
                    toElim[q.top()]--;
                    q.pop();
                }

                out << q.top() << '\n';
                break;
        }
    }

    return 0;
}