Pagini recente » Cod sursa (job #2533252) | Cod sursa (job #1228374) | Cod sursa (job #2327895) | Cod sursa (job #398453) | Cod sursa (job #1458295)
#include <vector>
#include <queue>
#include <fstream>
#include <functional>
using namespace std;
int main(){
ifstream f("heapuri.in");
ofstream g("heapuri.out");
int n;
f >> n;
vector<int> bagate;
priority_queue<int, vector<int>, greater<int> > multime, scoase;
for(int i = 0, a, b; i < n; ++i){
f >> a;
if(a == 1){
f >> b;
multime.push(b);
bagate.push_back(b); }
else if(a == 2){
f >> b;
scoase.push(bagate[b-1]); }
else if(a == 3){
while(!multime.empty() && !scoase.empty() && multime.top() == scoase.top()){
multime.pop(), scoase.pop(); }
g << multime.top() << '\n'; } }
return 0; }