Pagini recente » Cod sursa (job #317001) | Cod sursa (job #1212171) | Cod sursa (job #905077) | Cod sursa (job #981062) | Cod sursa (job #1148590)
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <algorithm>
#include <utility>
using namespace std;
set <int> heap;
set<pair<int,int> > v;
set<pair<int,int> >::iterator it;
unsigned compare(pair<int,int> a, int b)
{
if(a.first<b)
return 1;
else
return 0;
}
int main()
{
ifstream f("heapuri.in");
ofstream g("heapuri.out");
unsigned t;
int r,i,x=1,n,step,v_size;
f>>n;
for(i=1;i<=n;i++)
{
f>>t;
if(t==3)g<<*heap.begin()<<'\n';
else if(t==2)
{
f>>r;
it = lower_bound (v.begin(), v.end(),r, compare);
heap.erase((*it).second);
v.erase(it);
}
else if(t==1)
{
f>>r;
heap.insert(r);
v.insert(make_pair(x,r));
x++;
}
}
return 0;
}