Pagini recente » Cod sursa (job #1961386) | Cod sursa (job #1682366) | Cod sursa (job #2386033) | Cod sursa (job #1399110) | Cod sursa (job #1925777)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("heapuri.in"); ofstream g("heapuri.out");
int n,x,i,nn,pz,nr,c,j; int m[200001],a[200001];
int cautbin(int st, int dr)
{
int mij;
mij=1;
while (st<=dr)
{
mij=(st+dr)/2;
if (m[mij]==x) break;
if (m[mij]>x) dr=mij-1;
if (m[mij]<x) st=mij+1;
}
return mij;
}
int main()
{
f>>n;
for(i=1;i<=n;i++) m[i]=2000000000;
nr=0;
nn=0;
for(i=1;i<=n;i++)
{
f>>c;
if (c==1)
{
f>>x;
pz=cautbin(1,nr);
nn++;
a[nn]=x;
if (m[pz]<x)
{
while (m[pz]<x) {pz++;}
}
nr++;
for(j=nr;j>pz;j--) m[j]=m[j-1];
m[pz]=x;
}
if (c==2)
{
f>>x;
j=x;
x=a[j];
pz=cautbin(1,nr);
for(j=pz;j<nr;j++) m[j]=m[j+1];
m[nr]=2000000000;
nr--;
}
if (c==3)
{
g<<m[1]<<'\n';
}
}
return 0;
}