Cod sursa(job #2920415)

Utilizator RolandPetreanPetrean Roland RolandPetrean Data 24 august 2022 10:45:57
Problema Heapuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
// https://infoarena.ro/problema/heapuri
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define mod 1000000007

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

int main() {
  int n;
  fin>>n;

  priority_queue<int,vector<int>,greater<int>> heap;
  vector<int> o;
  for (int i=0; i<n; ++i) {
    int cod;
    fin>>cod;
    if (cod==1) {
      int x;
      fin>>x;
      heap.push(x);
      o.push_back(x);
    } else if (cod==2) {
      int x;
      fin>>x;
      --x;
      vector<int> d;
      while (heap.top() != o[x]) {
        d.push_back(heap.top());
        heap.pop();
      }
      heap.pop();

      for (int v:d) heap.push(v);
    } else {
      cout<<heap.top()<<endl;
    }
  }
}