Pagini recente » Cod sursa (job #338763) | Sandbox (cutiuţa cu năsip) | Cod sursa (job #3296622) | Istoria paginii runda/corigenta/clasament | Cod sursa (job #2761766)
#include <fstream>
#include <set>
#include <vector>
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
//implementam heapul cu ajutorul unui set (elem fiind in ordine) si cu un vector de pozitii
int N, cod, x;
set <int> heap;
vector <int> p;
void Rezolvare()
{
fin >> N;
//punem un element nesemnificativ ca sa incepem indexarea de la 1
p.push_back(-1);
for (int i = 1; i <= N; ++i)
{
fin >> cod;
if (cod == 1 || cod == 2) fin >> x;
if (cod == 1)
{
//x este intrat pe pozitia i
p.push_back(x);
heap.insert(x);
}
else if (cod == 2) heap.erase(p[x]);
else fout << *heap.begin() << "\n";
}
}
int main()
{
Rezolvare();
return 0;
}