Cod sursa(job #3245339)

Utilizator Her0ninjaDragos Rolland Her0ninja Data 28 septembrie 2024 16:23:40
Problema Heapuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <set>
#include <vector>
using namespace std;

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

    int N;
    f >> N;

    vector<int> e;
    set<int> te;
    priority_queue<int, vector<int>, greater<int>> min_heap;

    for (int i = 0; i < N; i++) {
        int c, x;
        f >> c;

        if (c == 1) {
            f >> x;
            e.push_back(x);
            min_heap.push(x);
        }
        else if (c == 2) {
            f >> x;
            te.insert(e[x - 1]);
        }
        else if (c == 3) {
            while (!min_heap.empty() && te.count(min_heap.top())) {
                min_heap.pop();
            }
            g << min_heap.top() << endl;
        }
    }

    f.close();
    g.close();

    return 0;
}