Cod sursa(job #1472960)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 18 august 2015 11:34:45
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
#include<cstring>
#include<ctime>
#include<bitset>
#include<cmath>
#include<iomanip>
#include<set>
#include<queue>
#include<fstream>
#include<cstdio>
#include<map>
#define Nmax 200005
using namespace std;
class comp
{
    public:
        bool operator () (pair <int, int> a, pair <int, int> b)
        {
            return a.first>b.first;
        }
};
priority_queue< pair<int, int > , vector< pair<int , int> >, comp > q;
int n;
bitset <200015>viz;
int main()
{
    int op,i = 0, x;
    fstream f,g;
    f.open("heapuri.in",ios::in);
    g.open("heapuri.out",ios::out);
    f>>n;
    while(n--)
    {
        f>>op;
        if (op == 1)
        {
            f>>x;
            i++;
            q.push(make_pair(x,i));
        }
        if (op == 2)
        {
            f>>x;
            viz[x] = 1;
        }

        if (op == 3)
        {
            while( viz [q.top().second] == 1)
                q.pop();
            g<<q.top().first<<'\n';
        }
    }
}