Pagini recente » Cod sursa (job #977233) | Cod sursa (job #2266522) | Cod sursa (job #2363902) | Monitorul de evaluare | Cod sursa (job #3350221)
#include <iostream>
#include <queue>
#include <fstream>
#include <map>
#include <cstring>
#include <stack>
#define N_MAX 200005
#define MOD 666013
using namespace std;
ifstream in("heapuri.in");
ofstream out("heapuri.out");
int n;
priority_queue<int, vector<int>, greater<int>>pq;
map<int, int> m;
int a[N_MAX];
int main()
{
in >> n;
int op, el;
for (int i = 0; i < n; i++) {
in >> op;
if (op == 3) {
while (m[pq.top()] == 0) {
pq.pop();
}
out << pq.top()<<'\n';
continue;
}
in >> el;
if (op == 1) {
pq.push(el);
a[++a[0]] = el;
if (m.find(el) != m.end()) {
m[el]++;
}
else m[el] = 1;
continue;
}
el = a[el];
m[el]--;
}
return 0;
}