Cod sursa(job #416431)

Utilizator warcryAlin B warcry Data 12 martie 2010 19:24:30
Problema Subsir crescator maximal Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<stdio.h>
#define dim 100001
using namespace std;
int lung[dim],poz[dim],pztr,cur,a[dim],i,j,m,p,n;

void rec(int i);
int main()
{
        freopen("scmax.in","r",stdin);
        freopen("scmax.out","w",stdout);     
 		scanf("%d",&n);
 		for(i=1;i<=n;++i)
 		   scanf("%d",&a[i]);
 		lung[1]=1; poz[1]=0;
 		for(i=2;i<=n;++i)
 		{
		    cur=0; pztr=0;
		    for(j=1;j<i;++j)
		       if(a[j]<a[i]&&lung[j]>cur)
		       {
					 cur=lung[j];
					 pztr=j;
               }
		    poz[i]=pztr;
		    lung[i]=cur+1;
		    if(m<lung[i])
		    {
				 						 m=lung[i];
				 						 p=i;
				}
    } 
    printf("%d\n",m);
    rec(p);
}
void rec(int i)
{
 		 if(i)
 		 {
		 			rec(poz[i]);
		 			printf("%d ",&a[i]);
     }
}