Pagini recente » Cod sursa (job #3248406) | Cod sursa (job #1210786) | Cod sursa (job #3179632) | Cod sursa (job #2879200) | Cod sursa (job #2210885)
#include <iostream>
#include <unordered_map>
#include <set>
#include <queue>
#include <algorithm>
#include <map>
#include <vector>
#include <string>
using namespace std;
class MyHeap {
public:
MyHeap() : idx_count(0) {}
void push(int x) {
idx_count++;
idx[idx_count] = x;
hp.insert(x);
}
int top() {
return *hp.begin();
}
void pop(int x) {
hp.erase(hp.find(idx[x]));
}
private:
multiset<int> hp;
unordered_map<int, int> idx;
int idx_count;
};
int main() {
freopen("heapuri.in","r",stdin);
freopen("heapuri.out","w",stdout);
int n, op, x;
MyHeap hp;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> op;
switch(op) {
case 1: cin >> x; hp.push(x); break;
case 2: cin >> x; hp.pop(x); break;
case 3: cout << hp.top() << endl;
}
}
return 0;
}