Pagini recente » Cod sursa (job #581081) | Cod sursa (job #2627144) | Cod sursa (job #833471) | Cod sursa (job #3225955) | Cod sursa (job #1101017)
#include <fstream>
#include <queue>
#define Nmax 200099
#define mp make_pair
#define x first
#define y second
using namespace std;
ifstream f("heapuri.in");
ofstream g("heapuri.out");
bool eliminat[Nmax];
priority_queue< pair<int, int>, vector< pair<int, int> >, greater< pair<int, int> > > pq;
int N,K;
int main()
{
f>>N;
for (int i=1; i<=N; ++i)
{
int op;
f>>op;
if (op == 1)
{
int val; f>>val;
pq.push(mp(val,++K));
}
else
if (op == 2)
{
int poz; f>>poz;
eliminat[poz]=1;
}
else
{
while (eliminat[pq.top().y]) pq.pop();
g<<pq.top().x<<'\n';
}
}
f.close();g.close();
return 0;
}