Pagini recente » Cod sursa (job #2069239) | Cod sursa (job #1497831) | Cod sursa (job #1249820) | Cod sursa (job #1307680) | Cod sursa (job #1148545)
#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;
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=v.begin();
v_size=v.size();
step=v_size;
cout<<step;
advance(it,step/2);
while(step)
{
step/=2;
if((*it).first==r)break;
else if((*it).first<r){advance(it, step);}
else {advance(it, -step);}
}
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;
}