Pagini recente » Cod sursa (job #294033) | Cod sursa (job #934318) | Cod sursa (job #24255) | Cod sursa (job #2798524) | Cod sursa (job #1406891)
#include <queue>
#include <functional>
#include <fstream>
using namespace std;
fstream fin("heapuri.in", ios::in);
fstream fout("heapuri.out", ios::out);
#define MAXN 200010
bool out[MAXN];
int main()
{
priority_queue <pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> heap;
int x, op, total = 0, n;
fin >> n;
for (int i = 1; i <= n; i++){
fin >> op;
if (op < 3) fin >> x;
if (op == 1)
heap.push(make_pair(x, ++total));
else if (op == 2)
out[x] = true;
else {
while (out[heap.top().second]) heap.pop();
fout << heap.top().first << "\n";
}
}
fin.close();
fout.close();
return 0;
}