Pagini recente » Cod sursa (job #1436248) | Cod sursa (job #1918955) | Cod sursa (job #2792303) | Cod sursa (job #2757212) | Cod sursa (job #2760119)
//
// main.cpp
// heap1
//
// Created by Vlad Calomfirescu on 27.04.2021.
//
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
//ifstream fin("heapuri.in");
//ofstream fout("heapuri.out");
//int f[200000];
//set<int> heap;
//int main()
//{
// int val,val1,n,op,k=1;
// fin>>n;
// for (int i = 0; i<n; i++)
// {
// fin>>op;
// switch (op)
// {
// case 1:
// fin>>val;
// heap.insert(val);
// f[++k] = val;
// break;
// case 2:
// fin>>val1;
// heap.erase(f[val1]);
// break;
// case 3:
// fout<<*heap.begin()<<endl;
// break;
// }
// }
// return 0;
//}
//int n, val, op, k;
//
//int main() {
//
// fin>>n;
//
// for (int i = 1; i <= n; i++) {
// fin>>op;
// if (op==1) {
// fin>> val;
// heap.insert(val);
// f[++k] = val;
// }
// else {
// if (op == 2) {
// fin >>val;
// heap.erase(f[val]);
// } else {
// fout<< *heap.begin()<<endl;
// }
// }
// }
//
// return 0;
//}
ifstream f("heapuri.in");
ofstream g("heapuri.out");
set <int> heap;
int N, v[200001], x, tip, k;
int main() {
f>>N;
for (int i = 1; i <= N; i++) {
f >> tip;
if (tip == 1) {
f >> x;
heap.insert(x);
v[++k] = x;
}
else {
if (tip == 2) {
f >> x;
heap.erase(v[x]);
} else {
g << *heap.begin() << '\n';
}
}
}
g.close();
f.close();
return 0;
}