Cod sursa(job #429929)

Utilizator soriynSorin Rita soriyn Data 30 martie 2010 17:01:54
Problema Subsir crescator maximal Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<stdio.h>


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

 
	
}
	return 0;
}