Cod sursa(job #831121)

Utilizator avaspataruAva Spataru avaspataru Data 8 decembrie 2012 10:27:51
Problema Subsir 2 Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>
int i,j,n,v[50001],vc[50001],ppminim,maxim,maximul,elemminim,pozminim;
int main(){
    freopen("subsir2.in","r",stdin);
    freopen("subsir2.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    vc[n]=1;
    maximul=1;
    for(i=n-1;i>=1;i--){
        maxim=-1;
        for(j=n;j>i;j--)
            if(vc[j]>maxim&&v[j]>=v[i])
                maxim=vc[j];
        if(maxim!=-1)
            vc[i]=maxim+1;
        else
            vc[i]=1;
        if(vc[i]>maximul)
            maximul=vc[i];
    }
    printf("%d\n",maximul);
    ppminim=1;
    while(maximul>0){
        //il caut pe maximul
        elemminim=1000001;
        for(i=ppminim;i<=n;i++){
            if(vc[i]==maximul&&v[i]<elemminim){
                pozminim=i;
                elemminim=v[i];
            }
        }
        printf("%d ",pozminim);
        ppminim=pozminim;
        maximul--;
    }
    return 0;
}