Pagini recente » Cod sursa (job #3134378) | Cod sursa (job #2864179) | Cod sursa (job #449125) | Cod sursa (job #143287) | Cod sursa (job #533787)
Cod sursa(job #533787)
#include<stdio.h>
int n,v[100001],lmax,x[100001],y[100001];
int who,rez[ 1000003], bla = 0;
int main()
{
int i,j;
freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
lmax=1;
x[1]=1;
for(i=2;i<=n;i++)
{
x[ i ] = 1;
y[ i ] = 0;
for(j=i-1;j>=1;j--)
{
if(v[i]>v[j])
{
if( x[ j ] + 1 > x[ i ] )
{
x[ i ]= x[ j ] + 1;
y[ i ] = j ;
}
}
}
}
for(i=1;i<=n;i++)
if(x[i]>lmax)
{
who = i;
lmax=x[i];
}
printf("%d\n",lmax);
while ( who )
{
// printf("%d\n", who );
rez[ ++bla ] = v[ who ];
who = y[ who ];
}
for( i = lmax; i>= 1; i--)
printf("%d ", rez[ i ] );
return 0;
}