Cod sursa(job #950117)
Utilizator | Dobre Bogdan Mihai dobrebogdan | Data | 15 mai 2013 21:16:08 |
---|---|---|---|
Problema | Heapuri | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 1.24 kb |
#include<stdio.h>
int v[200005];
bool b[200005];
int main()
{
freopen("heapuri.in","r",stdin);
freopen("heapuri.out","w",stdout);
int n,i,j,m,l=0,p=1,a,min=0,t,c,l2,m2;
scanf("%d",&n);
min=1000000000;
for(i=1;i<=n;i++)
{
scanf("%d",&c);
if(c==1)
{
scanf("%d",&m);
l++;
v[l]=m;
if(m<min)
{
min=m;
t=1;
}
}
else
if(c==2)
{
scanf("%d",&m);
p=m;
if(v[m]==min)
{
t=0;
}
b[m]=1;
}
else
{
if(t==1)
printf("%d\n",min);
else
{
m2=min;
min=1000000000;
for(j=p+1;j<=l;j++)
{
if(v[j]<min && b[j]!=1)
{
min=v[j];
if(min==m2+1)
{
t=1;
break;
}
}
}
if(t==0)
for(j=p-1;j>0;j--)
if(v[j]<min && b[j]!=1)
{
min=v[j];
if(min==m2+1)
break;
}
t=1;
printf("%d\n",min);
}
}
}
return 0;
}