Pagini recente » Cod sursa (job #1561850) | Cod sursa (job #1894312) | Cod sursa (job #624297) | Cod sursa (job #368894) | Cod sursa (job #2210886)
#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;
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%d", &op);
switch(op) {
case 1: scanf("%d", &x); hp.push(x); break;
case 2: scanf("%d", &x); hp.pop(x); break;
case 3: printf("%d\n", hp.top());
}
}
return 0;
}