Pagini recente » Cod sursa (job #2958917) | Cod sursa (job #3243961) | Cod sursa (job #2958916) | Cod sursa (job #2240002) | Cod sursa (job #3245339)
#include <iostream>
#include <fstream>
#include <queue>
#include <set>
#include <vector>
using namespace std;
int main() {
ifstream f("heapuri.in");
ofstream g("heapuri.out");
int N;
f >> N;
vector<int> e;
set<int> te;
priority_queue<int, vector<int>, greater<int>> min_heap;
for (int i = 0; i < N; i++) {
int c, x;
f >> c;
if (c == 1) {
f >> x;
e.push_back(x);
min_heap.push(x);
}
else if (c == 2) {
f >> x;
te.insert(e[x - 1]);
}
else if (c == 3) {
while (!min_heap.empty() && te.count(min_heap.top())) {
min_heap.pop();
}
g << min_heap.top() << endl;
}
}
f.close();
g.close();
return 0;
}