Pagini recente » Cod sursa (job #2800094) | Cod sursa (job #1698624) | Cod sursa (job #705916) | Cod sursa (job #97317) | Cod sursa (job #818815)
Cod sursa(job #818815)
#include <fstream>
#include <queue>
using namespace std;
const int N = 200005;
struct Heap{
priority_queue<int, vector<int>, greater<int> > H, D;
int v[N], nrI, nrO;
Heap(){
nrI = 0;
}
void push(int x){
H.push(x);
v[++nrI] = x;
}
void pop(int x){
D.push(v[x]);
}
int top(){
while (!H.empty() && !D.empty() && H.top() == D.top()){
H.pop();
D.pop();
}
return H.top();
}
};
Heap H;
ifstream in("heapuri.in");
ofstream out("heapuri.out");
int main(){
int m, x;
in >> m;
while (m--){
in >> x;
if (x == 1){
in >> x;
H.push(x);
continue;
}
if (x == 2){
in >> x;
H.pop(x);
continue;
}
out << H.top() << "\n";
}
return 0;
}