Cod sursa(job #505202)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 30 noiembrie 2010 23:56:12
Problema Subsir 2 Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

int i,j,k,min,n,v[5002],d[5002],p[5002];

void w(int a)
{
    if (p[a]==n+1) return;
    printf("%d ",p[a]);
    w(p[a]);
}

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]);
    v[0]=-1000001;
    for (i=n;i>=0;--i)
    {
        min=1000001;k=n+1;
        for (j=i+1;j<=n;++j)
            if ((min>=v[j])&&(v[j]>v[i]))
            {
                min=v[j];
                k=j;
            }
        d[i]=d[k]+1;
        p[i]=k;
    }
    printf("%d\n",d[0]-1);
    w(0);
    return 0;
}