Cod sursa(job #2643114)

Utilizator Razvan48Capatina Razvan Nicolae Razvan48 Data 18 august 2020 18:54:25
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <climits>
#include <queue>

using namespace std;

const int NMAX = 200000;

//using per = pair<int, int>;
//priority_queue<per, vector <per>, greater<per> > pq;

priority_queue<pair<int, int> , vector<pair<int, int> >, greater < pair<int, int> > > pq;

bool scos[1 + NMAX];

int main()
{
  ifstream in("heapuri.in");
  ofstream out("heapuri.out");

  int n, nr = 0, op, element, index;

  in >> n;
  for (int i = 1; i <= n; i++)
  {
    in >> op;
    switch (op)
    {
      case 1:
      {
         in >> element;

         nr++;
         pq.push(make_pair(element, nr));

         break;
      }
      case 2:
      {
         in >> index;

         scos[index] = true;

         break;
      }
      case 3:
      {
         while(scos[pq.top().second])
    {
            pq.pop();
         }
         out << pq.top().first << '\n';
         break;
      }
    }
  }

  return 0;
}