Pagini recente » Cod sursa (job #126662) | Cod sursa (job #227452) | Cod sursa (job #856704) | Cod sursa (job #1742861) | Cod sursa (job #3215361)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin ("heapuri.in");
ofstream fout ("heapuri.out");
const int NMAX = 2 * (1e5);
int v[NMAX + 5], Size;
bool fr[NMAX + 5];
struct cmp
{
bool operator()(int idx1, int idx2)
{
return v[idx1] > v[idx2];
}
};
priority_queue <int, vector <int>, cmp> heap;
int main()
{
int n;
fin >> n;
for(int i = 1; i <= n; i++)
{
int op, value;
fin >> op;
if(op == 1)
{
fin >> value;
v[++Size] = value;
fr[Size] = 1;
heap.push(Size);
}
if(op == 2)
{
fin >> value;
fr[value] = 0;
}
if(op == 3)
{
while(fr[heap.top()] == 0)
heap.pop();
fout << v[heap.top()] << '\n';
}
}
fin.close();
fout.close();
return 0;
}