Cod sursa(job #1306646)
| Utilizator | Data | 31 decembrie 2014 12:20:59 | |
|---|---|---|---|
| Problema | Heapuri | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.3 kb |
#include<fstream>
using namespace std;
int main()
{
ifstream f("heapuri.in");
ofstream g("heapuri.out");
long n=0,j,a,b,ko,m,x,t[200000],k,mi[200000],h=0;
int c;
f>>m;
for(k=1;k<=m;k++)
{
f>>c;
if(c==1)
{
f>>x;
t[++n]=x;
a=1;
b=h;
ko=0;
while(a<=b)
{
ko=(a+b)/2;
if(x<mi[ko])
b=--ko;
else if(x>mi[ko])
a=ko+1;
else a=b+1;
}
for(j=h+1;j>ko+1;j--)
mi[j]=mi[j-1];
mi[ko+1]=x;
h++;
}
else if(c==2)
{
f>>x;
x=t[x];
a=1;
b=h;
ko=0;
while(a<=b)
{
ko=(a+b)/2;
if(x<mi[ko])
b=--ko;
else if(x>mi[ko])
a=ko+1;
else {
a=b+1;
for(j=ko;j<h;j++)
mi[j]=mi[j+1];
h--;
}
}
}
else g<<mi[1]<<"\n";
}
f.close();
g.close();
return 0;
}
