Cod sursa(job #318632)

Utilizator mihai.cuculiciCuculici Mihail mihai.cuculici Data 28 mai 2009 20:45:21
Problema Heapuri Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
         
ifstream f ("heapuri.in");
ofstream g ("heapuri.out");

int main()
{
    int i, op, N, x;
    priority_queue<int, vector<int>, greater<int> > pq;
    queue<int> pq1;
    vector<int> _aux;
    f >> N;
    for(i = 0; i < N; i++)
    {
       f >> op;
       if(op == 1)
       {
          f >> x;
          pq.push(x);
          _aux.push_back(x);
       }
       else if(op == 2) 
       {
          f >> x;
          while(pq.top() != _aux[x - 1]) pq1.push(pq.top()), pq.pop();
          pq.pop();
          while(pq1.size()) pq.push(pq1.front()), pq1.pop();
       }
       else if(op == 3) g<<pq.top()<<"\n";
    }
    return 0;
}