Pagini recente » Cod sursa (job #2064053) | Cod sursa (job #3147065) | Cod sursa (job #2871519) | Cod sursa (job #381964) | Cod sursa (job #2643114)
#include <fstream>
#include <climits>
#include <queue>
using namespace std;
const int NMAX = 200000;
//using per = pair<int, int>;
//priority_queue<per, vector <per>, greater<per> > pq;
priority_queue<pair<int, int> , vector<pair<int, int> >, greater < pair<int, int> > > pq;
bool scos[1 + NMAX];
int main()
{
ifstream in("heapuri.in");
ofstream out("heapuri.out");
int n, nr = 0, op, element, index;
in >> n;
for (int i = 1; i <= n; i++)
{
in >> op;
switch (op)
{
case 1:
{
in >> element;
nr++;
pq.push(make_pair(element, nr));
break;
}
case 2:
{
in >> index;
scos[index] = true;
break;
}
case 3:
{
while(scos[pq.top().second])
{
pq.pop();
}
out << pq.top().first << '\n';
break;
}
}
}
return 0;
}