Cod sursa(job #3163607)

Utilizator KarinaDKarina Dumitrescu KarinaD Data 31 octombrie 2023 17:56:44
Problema Heapuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <queue>

using namespace std;

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

priority_queue <int, vector<int>, greater <int>> q, qDelete;
vector <int> poz(3e5);

int main() {
    
    int t, x, cer, n = 1;
    
    cin >> t;
    
    for ( int i = 0; i < t; i++ ) {
       
        fin >> cer;
        
        if ( cer == 1 ) {
            fin >> x;
            poz[n] = x;
            q.push (x);
            n++;
        }
        
        else if ( cer == 2 ) {
            fin >> x;
            qDelete.push (poz[x]);
        }
        
        else {
            
            while ( qDelete.size() != 0 && q.top() == qDelete.top() ) {
                qDelete.pop();
                q.pop();
            }
            
            fout << q.top() << "\n";
        }
    }
    
    return 0;
}