Cod sursa(job #950117)

Utilizator dobrebogdanDobre 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;
}