Cod sursa(job #369435)

Utilizator aghamatMorariu Razvan aghamat Data 28 noiembrie 2009 13:28:25
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>

#define DIM 100 000

long v[DIM], l[DIM], n, i, k, max, t;

int main()
{
	freopen("scmax.in","r",stdin);
	freopen("scmax.out","w",stdout);
	scanf("%ld",&n);
	for (i=1;i<=n;++i)
		scanf("%ld",&v[i]);
    l[n]=1;
    for (k=n-1;k>=1;--k)
        {
            max=0;
            for (i=k+1;i<=n;++i)
                if (v[i]>v[k] && l[i]>max)
                    max=l[i];
            l[k]=max+1;
            }
    max=l[1];
    t=1;
    for (k=1;k<=n;++k)
        if (l[k]>max)
            {
                max=l[k];
                t=k;
                }
    printf("%d\n",max);
    printf("%d ",v[t]);
    for (i=t+1;i<=n;++i)
        if (v[i]>v[t] && l[i]==max-1)
            {
            printf("%d ",v[i]);    
            --max;    
                }
    return 0;
    }