Cod sursa(job #2528982)

Utilizator Botzki17Botocan Cristian-Alexandru Botzki17 Data 22 ianuarie 2020 20:17:32
Problema Hashuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.08 kb
#include <fstream>
#include <queue>

using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
const int NMAX =200000;
bool viz[NMAX+5];
///valoarea 0 a fiecarui element inseamna ca e inca existent in heap, iar valoarea 1 inseamna ca nu mai este in heap
struct element
{
   int valoare, ordine;
   bool operator < (const element &a)const
   {
       return valoare > a.valoare;
   }

};
priority_queue <element>pq;

int main()
{
    int n, i, k, x;
    element a;
    a.ordine = 0;
    element raspuns;
    fin>>n;
    for(i =1; i<=n;i++)
    {
      fin>>k;
      if(k == 1)
      {
         fin>>x;
         a.valoare = x;
         a.ordine++;
         pq.push(a);
         continue;
      }
      if(k==2)
      {
        fin>>x;
        viz[x] = 1;
        continue;
      }
      if(k==3)
      {
        raspuns = pq.top();
        while(viz[raspuns.ordine] ==1)
        {
           pq.pop();
           raspuns = pq.top();
        }
        fout<<raspuns.valoare<<"\n";
        continue;
      }
    }
    return 0;
}