Pagini recente » Cod sursa (job #1745174) | Cod sursa (job #1037256) | Cod sursa (job #1040353) | Cod sursa (job #3317182) | Cod sursa (job #2743441)
#include <fstream>
#include <set>
#define NMax 200005
using namespace std;
ifstream fin("heapuri.in");
ofstream fout("heapuri.out");
set<int>h; //multime coresp heapului
int poz[NMax]; //vector de pozitii din heap pentru a identifica pt stergere
int main()
{
int N, task, x, nh = 0;
fin >> N;
for (int i = 1; i <= N; ++i)
{
fin >> task;
if (task == 1 || task == 2) fin >> x;
if (task == 1)
{
poz[++nh] = x; //memoram a cata inserare este cea a lui x
h.insert(x);
}
else if (task == 2) h.erase(poz[x]); ///stergem al x-lea element
else fout << *h.begin() << "\n"; //.begin() returneaza pointer => ne referim la val cu *
}
return 0;
}