Cod sursa(job #1786368)

Utilizator enescu_rEnescu Radu enescu_r Data 22 octombrie 2016 21:02:42
Problema Heapuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <cstdio>
#include <set>
#include <vector>
using namespace std;

int N, i, x, op;

struct comp {
    bool operator()(const int &x, const int &y)
    {
        return x < y;
    }
};

vector <int> v;
multiset <int, comp> multime;
multiset <int, comp> :: iterator it;

int main( void )
{
    freopen("heapuri.in", "r", stdin);
    freopen("heapuri.out", "w", stdout);
    scanf("%d\n", &N);
    for(i=1; i <= N;i++)
    {
        scanf("%d", &op);
        if (op == 1)
        {
            scanf("%d", &x);
            v.push_back(x);
            multime.insert(x);
        }
        else
        if (op ==2 )
        {
            scanf("%d\n", &x);
            multime.erase(v[x-1]);
        }
        else
        {
            it = multime.begin();
            printf("%d\n", *it);
        }
    }
    return 0;
}