Cod sursa(job #410265)

Utilizator paul992Cirstean Paul paul992 Data 4 martie 2010 11:08:57
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#define lmax 100005
int v[lmax],l[lmax],max,maxs,i,k,n,t;

void read(),solve();

int main()
{read();
solve();
return 0;}

void read()
{freopen("scmax.in","r",stdin);
freopen("scmax.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++) 
scanf("%d",&v[i]);
}

void solve()
{l[n]=1;
for(i=n-1;i>=1;i--)
{max=0;
for(k=i+1;k<=n;k++)
	if(v[k]>v[i]&&l[k]>max)
	{max=l[k];
	l[i]=max+1;}
if(l[i]>max)
	{maxs=l[i];
	t=i;}
}


printf("%d\n",maxs);
printf("%d ",v[t]);

for(i=t+1;i<=n;i++)
	if(v[i]>v[t]&&l[i]==maxs-1)
	{printf("%d ",v[i]);
	maxs--;}
}