Cod sursa(job #3131972)

Utilizator AlexC23Codreanu Alex-Cosmin AlexC23 Data 21 mai 2023 22:10:36
Problema Heapuri Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <iostream>
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;

int main()
{
    ifstream f("heapuri.in");
    ofstream g("heapuri.out");
    vector<int> v;
    int n, a, b, k = 0;
    f >> n;
    vector<int> v2(n);
    priority_queue<int, vector<int>, greater<int>> minHeap;

    for (int i = 0; i < n; i++)
    {
        f>>a;
        if (a == 1)
        {
            f >> b;
            v.push_back(b);
            v2[k] = b;
            minHeap.push(b);
            k++;
        }
        else if (a == 2)
        {
            f >> b;
            auto it=find(v.begin(), v.end(), v2[b - 1]);
            if (it != v.end())
            {
                v.erase(it);
                priority_queue<int, vector<int>, greater<int>>minHeap2;
                for (auto num : v)
                {
                    minHeap2.push(num);
                }
                minHeap = minHeap2;
            }
        }
        else if (a == 3)
        {
            if (!minHeap.empty())
            {
                g<<minHeap.top()<<endl;
            }
        }
    }

    f.close();
    g.close();
    return 0;
}