Pagini recente » Cod sursa (job #2731499) | Cod sursa (job #1320273) | Cod sursa (job #614905) | Cod sursa (job #962240) | Cod sursa (job #3168365)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
struct elem{
int value, poz;
bool operator < (elem other) const{
return (value > other.value);
}
};
int poz = 0;
priority_queue<elem> heap;
bool removed[200001];
int main() {
int n;
fin >> n;
for (int i = 1; i <= n; i++){
int operatie;
fin >> operatie;
if (operatie == 3){
while (removed[heap.top().poz] == true){
heap.pop();
}
fout << heap.top().value << '\n';
} else if (operatie == 1){
poz++;
elem x;
x.poz = poz;
fin >> x.value;
heap.push(x);
} else {
int should_be_removed;
fin >> should_be_removed;
removed[should_be_removed] = true;
}
}
return 0;
}