Pagini recente » Istoria paginii utilizator/nacholibre | Cod sursa (job #6576) | Monitorul de evaluare | Cod sursa (job #2487743) | Cod sursa (job #2224761)
#include <bits/stdc++.h>
using namespace std;
int main() {
// ifstream cin("data.txt");
ifstream cin("heapuri.in");
ofstream cout("heapuri.out");
ios_base::sync_with_stdio(false);
int N;
cin >> N;
vector<int> v;
multiset<int> mset;
priority_queue<int, vector<int>, greater<int>> minHeap;
while (N--){
int t;
cin >> t;
if (t == 1){
int x;
cin >> x;
v.push_back(x);
minHeap.push(x);
}
else if (t == 2){
int x;
cin >> x;
mset.insert(v[x - 1]);
}
else{
while (minHeap.size() > 0){
int x = minHeap.top();
if (mset.find(x) != mset.end()){
mset.erase(mset.find(x));
minHeap.pop();
continue;
}
cout << x << "\n";
break;
}
}
}
return 0;
}