Pagini recente » Cod sursa (job #2431845) | Cod sursa (job #973912) | Cod sursa (job #2800380) | Cod sursa (job #197972) | Cod sursa (job #2246607)
#include <queue>
#include <fstream>
#include <iostream>
#include <functional>
using namespace std;
priority_queue<pair<int, int>, vector<pair<int, int > >, greater<pair<int, int> > > pq;
bool erased[200001];
ifstream fi("heapuri.in");
ofstream fo("heapuri.out");
int main()
{
int command, n, val, order = 0;
fi >> n;
while(n--)
{
fi >> command;
if(command == 1)
{
fi >> val;
order++;
pq.push({val,order});
}
else if(command == 2)
{
fi >> val;
erased[val] = 1;
}
else if(command == 3)
{
while(!pq.empty() && erased[pq.top().second])
pq.pop();
if(!pq.empty())
fo << pq.top().first<<"\n";
}
}
}