Pagini recente » Cod sursa (job #3293597) | Cod sursa (job #796392) | Cod sursa (job #2798214) | Cod sursa (job #260969) | Cod sursa (job #3131972)
#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;
}