Cod sursa(job #268376)

Utilizator stefynr8Space Monkey stefynr8 Data 1 martie 2009 10:54:39
Problema Subsir crescator maximal Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

long n,i,v[1000],p[1000],l[1000],j,max,first;
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]);

first=n;
p[n]=-1;
l[n]=1;

for(i=n-1;i>=1;i--)
   {
   l[i]=1;
   p[i]=-1;

   for(j=i+1;j<=n;j++)
      {
      if((v[i]<v[j]) && (l[i]<l[j]+1)){
					p[i]=j;
					l[i]=l[j]+1;
					}

       }
   if(l[i]>max){ max=l[i];
		 first=i;
		 }

   }

printf("%d\n",max);

i=first;
while(p[i]!=-1)
{
 printf("%d ",v[i]);
 i=p[i];

}
 return 0;
}