Cod sursa(job #2746973)

Utilizator DenisTroacaDenis Troaca DenisTroaca Data 28 aprilie 2021 18:51:03
Problema Heapuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
vector <int> v;
int indice(int val){
    for(int i=0;i<v.size();i++)
        if(val==v[i])
            return i;
    return 0;
}
int n,x,t,nr,index,aux[200001];
int main()
{
    fin>>n;
    for(int i=0;i<n;i++){
        fin>>t;
        if(t==1){
            fin>>x;
            nr++;
            aux[nr]=-x;
            v.push_back(-x);
            push_heap(v.begin(), v.end());
        }
        if(t==2){
            fin>>x;
            index=indice(aux[x]);
            swap(v[index],v[v.size()-1]);
            v.pop_back();
             make_heap(v.begin(), v.end());
        }
        if(t==3){
            fout<<-v.front()<<'\n';   
        }

    }
}