Cod sursa(job #303416)

Utilizator ZillaMathe Bogdan Zilla Data 9 aprilie 2009 20:29:45
Problema Subsir crescator maximal Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

#define Nmax 100100

int n,v[Nmax],b[2][Nmax],max,maxim;

void afisare(int maxim)
{
	if(b[1][maxim])
		afisare(b[1][maxim]);
	printf("%d ",v[maxim]);
}

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