Cod sursa(job #3161290)

Utilizator Alex_BerbescuBerbescu Alexandru Alex_Berbescu Data 26 octombrie 2023 15:47:23
Problema Heapuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.17 kb
#pragma GCC optimize("O3")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>
using namespace std;
int n, op, x, t;
struct point
{
    int val, idx;
    bool operator <(const point &ob)const
    {
        return val > ob.val;
    }
};
priority_queue<point>pq;
bitset<200005>viz;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
int32_t main(int argc, char * argv[])
{
    fin >> n;
    for(int i = 1; i <= n; ++i)
    {
        fin >> op;
        if(op == 3)
        {
            int ok = 0;
            while(ok == 0)
            {
                point vf = pq.top();
                if(viz[vf.idx] == 1)
                {
                    pq.pop();
                }
                else
                {
                    ok = 1;
                    fout << vf.val << '\n';
                }
            }
        }
        else
        {
            if(op == 1)
            {
                fin >> x;
                pq.push({x, t++});
            }
            else
            {
                fin >> x;
                viz[x] = 1;
            }
        }

    }
return 0;
}